GVKun编程网logo

Matplotlib图facecolor(背景色)(matplotlib背景颜色)

9

此处将为大家介绍关于Matplotlib图facecolor的详细内容,并且为您解答有关背景色的相关问题,此外,我们还将为您介绍关于ImportError:未安装带有matplotlib的名为matp

此处将为大家介绍关于Matplotlib图facecolor的详细内容,并且为您解答有关背景色的相关问题,此外,我们还将为您介绍关于ImportError:未安装带有matplotlib的名为matplotlib的模块、java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本、matplotlib - 数据框 - 如何在 matplotlib 的背景上有真实的地图、matplotlib 3.0.0,无法从“ matplotlib”导入名称“ get_backend”的有用信息。

本文目录一览:

Matplotlib图facecolor(背景色)(matplotlib背景颜色)

Matplotlib图facecolor(背景色)(matplotlib背景颜色)

有人可以解释一下设置图形的面色时为什么下面的代码不起作用吗?

import matplotlib.pyplot as plt# create figure instancefig1 = plt.figure(1)fig1.set_figheight(11)fig1.set_figwidth(8.5)rect = fig1.patchrect.set_facecolor(''red'') # works with plt.show().                            # Does not work with plt.savefig("trial_fig.png")ax = fig1.add_subplot(1,1,1)x = 1, 2, 3y = 1, 4, 9ax.plot(x, y)# plt.show()  # Will show red face color set above using rect.set_facecolor(''red'')plt.savefig("trial_fig.png") # The saved trial_fig.png DOES NOT have the red facecolor.# plt.savefig("trial_fig.png", facecolor=''red'') # Here the facecolor is red.

当我使用fig1.set_figheight(11)
fig1.set_figwidth(8.5)这些命令指定图形的高度和宽度时,这些命令将被拾取plt.savefig("trial_fig.png")。但是,没有选择Facecolor设置。为什么?

谢谢你的帮助。

答案1

小编典典

这是因为savefig覆盖图形背景的面色。

(实际上,这是有意的。假设是您可能希望使用facecolorkwarg来控制保存的图形的背景色。不过,savefig这是一个令人困惑且不一致的默认值!)

最简单的解决方法是做fig.savefig(''whatever.png'', facecolor=fig.get_facecolor(),edgecolor=''none'')(我在这里指定edgecolor,因为实际图形的默认edgecolor是白色,这将在保存的图形周围提供白色边框)

希望有帮助!

ImportError:未安装带有matplotlib的名为matplotlib的模块

ImportError:未安装带有matplotlib的名为matplotlib的模块

代码行:

import matplotlib

错误:

ImportError:没有名为“ matplotlib”的模块

问题:

which python3.4    % /usr/bin/python3.4

matplotlib在哪里安装?

sudo find /usr | grep matplotlib  % /usr/lib/pymodules/python2.7/matplotlib/...

一些注意事项:

  • 操作系统:Linux Mint 17.2
  • 我需要使用Python 3.4

解决方案:

  • import sys sys.path.append('/usr/lib/pymodules/python2.7/') (对此不满意)。

  • 使用pip3 install matplotlibsudo pip3 install matplotlib(接收错误,我也不喜欢这一点)。

  • 使用sudo apt-get install python-matplotlib(可能是完美的选择,但在python2.7目录中安装了matplotlib)。

我如何使Matplotlib适用于python3?谢谢

java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本

java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本

写在前面,最近需要在java中调用matplotlib,其他一些画图包都没这个好,毕竟python在科学计算有优势。找到了matplotlib4j,大概看了下github上的https://github.com/sh0nk/matplotlib4j,maven repository:

<dependency>
   <groupId>com.github.sh0nk</groupId>
       <artifactId>matplotlib4j</artifactId>
       <version>0.5.0</version>
</dependency>

简单贴个测试类,更多的用法在test报下有个MainTest.class。

 @Test
    public void testPlot() throws IOException, PythonExecutionException, ClassNotFoundException, NoSuchMethodException, illegalaccessexception, InvocationTargetException, InstantiationException {
        Plot plot = Plot.create(PythonConfig.pythonBinPathConfig("D:\\python3.6\\python.exe"));
        plt.plot()
                .add(Arrays.asList(1.3, 2))
                .label("label")
                .linestyle("--");
        plt.xlabel("xlabel");
        plt.ylabel("ylabel");
        plt.text(0.5, 0.2, "text");
        plt.title("Title!");
        plt.legend();
        plt.show();

    }

下面问题来了,这个对matplotlib的封装不是很全面,源码里也有很多todo,有很多函数简单用用还行,很多重载用不了,比如plt.plot(xdata,ydata)可以,但是无法在其中指定字体plt.plot(xdata,ydata,fontsize=30);

所以想要更全面的用法还得自己动手,几种办法:

  1. 大部分还是用matplotlib4j中的,个别的自己需要的但里头没有的函数,实现他的builder接口,重写build方法,返回一个py文件中命令行的字符串形式,然后反射取到PlotImpl中的成员变量registeredBuilders,往后追加命令行,感觉适用于只有极个别命令找不到的情况,挺麻烦的,而且要是传nd.array(…)这种参数还得额外拼字符串。
//拿到plotImpl中用于组装python脚本语句的的registeredBuilders,需要加什么直接添加新的builder就行了
        Field registeredBuildersField = plt.getClass().getDeclaredField("registeredBuilders");
        registeredBuildersField.setAccessible(true);
        List<Builder> registeredBuilders = (List<Builder>) registeredBuildersField.get(plt);

        TicksBuilder ticksBuilder = new TicksBuilder(yList, "yticks", fontSize);
        registeredBuilders.add(ticksBuilder);
  1. 这种比较直接,参照matplotlib4j底层,直接写py.exe文件,执行命令行,比较推荐这种,一行一行脚本自己写,数据拼装方便,看起来直观。比如写如下的脚本并执行,搞两组数据,画个散点图
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.array(自己的x数据), np.array(自己的y数据), 'k.', markersize=4)
plt.xlim(0,6000)
plt.ylim(0,24)
plt.yticks(np.arange(0, 25, 1), fontsize=10)
plt.title("waterfall")
plt.show()

像下面这么写就行了

		//1. 准备自己的数据 不用管
        List<Float> y_secondList_formatByHours = y_secondList.stream().map(second -> (float)second / 3600).collect(Collectors.toList());

        //2.准备命令行list,逐行命令添加
        List<String> scriptLines = new ArrayList<>();
        scriptLines.add("import numpy as np");
        scriptLines.add("import matplotlib.pyplot as plt");
        scriptLines.add("plt.plot("+"np.array("+x_positionList+"),"+"np.array(" +y_secondList_formatByHours+"),\"k.\",label=\"waterfall\",lw=1.0,markersize=4)");
        scriptLines.add("plt.xlim(0,6000)");
        scriptLines.add("plt.ylim(0,24)");
        scriptLines.add("plt.yticks(np.arange(0, 25, 1), fontsize=10)");
        scriptLines.add("plt.title(\"waterfall\")");
        scriptLines.add("plt.show()");
        //3. 调用matplotlib4j 里面的pycommond对象,传入自己电脑的python路径
        pycommand command = new pycommand(PythonConfig.pythonBinPathConfig("D:\\python3.6\\python.exe"));
        //4. 执行,每次执行会生成临时文件 如C:\Users\ADMINI~1\AppData\Local\Temp\1623292234356-0\exec.py,这个带的日志输出能看到,搞定
        command.execute(Joiner.on('\n').join(scriptLines));

在这里插入图片描述

搞定。

matplotlib - 数据框 - 如何在 matplotlib 的背景上有真实的地图

matplotlib - 数据框 - 如何在 matplotlib 的背景上有真实的地图

geopandas 提供了一个 API,让这一切变得非常简单。这是一个示例,其中地图放大到非洲大陆:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import geopandas

df = pd.DataFrame(
   {'Latitude': np.random.uniform(-20,10,100),'Longitude': np.random.uniform(40,20,100)})

gdf = geopandas.GeoDataFrame(
    df,geometry=geopandas.points_from_xy(df.Longitude,df.Latitude))

world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))

ax = world[world.continent == 'Africa'].plot(color='white',edgecolor='black')

# We can now plot our ``GeoDataFrame``.
gdf.plot(ax=ax,color='red')

plt.show()

结果:

enter image description here

matplotlib 3.0.0,无法从“ matplotlib”导入名称“ get_backend”

matplotlib 3.0.0,无法从“ matplotlib”导入名称“ get_backend”

使用Windows 10将anaconda用作程序包管理器。我有一个运行python
3.7的基本环境,其中matplotlib可以正常工作。创建新环境并安装keras和matplotlib时,我开始遇到问题:

>>> import matplotlib.pyplot as pltTraceback (most recent call last):  File "<stdin>", line 1, in <module>  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\__init__.py", line 1111, in <module>    rcParamsOrig = RcParams(rcParams.copy())  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\__init__.py", line 891, in __getitem__    from matplotlib import pyplot as plt  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\pyplot.py", line 32, in <module>    import matplotlib.colorbar  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\colorbar.py", line 40, in <module>    import matplotlib._constrained_layout as constrained_layout  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\_constrained_layout.py", line 52, in <module>    from matplotlib.legend import Legend  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\legend.py", line 43, in <module>    from matplotlib.offsetbox import HPacker, VPacker, TextArea, DrawingArea  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\offsetbox.py", line 33, in <module>    from matplotlib.image import BboxImage  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\image.py", line 19, in <module>    from matplotlib.backend_bases import FigureCanvasBase  File "C:\...\Anaconda3\envs\keras_env\lib\site-packages\matplotlib\backend_bases.py", line 46, in <module>    from matplotlib import (ImportError: cannot import name ''get_backend''

有什么建议?这是conda的全新安装。我为到达此处所做的所有工作都是运行conda create --name keras_env kerasmatplotlib,进入环境并尝试导入matplotlib。这些是conda安装的软件包:

## Package Plan ##environment location: C:\...\Anaconda3\envs\keras_envadded / updated specs:- keras- matplotlibThe following NEW packages will be INSTALLED:_tflow_select:       2.2.0-eigenabsl-py:             0.5.0-py36_0astor:               0.7.1-py36_0blas:                1.0-mklca-certificates:     2018.03.07-0certifi:             2018.10.15-py36_0cycler:              0.10.0-py36h009560c_0freetype:            2.9.1-ha9979f8_1gast:                0.2.0-py36_0grpcio:              1.12.1-py36h1a1b453_0h5py:                2.8.0-py36h3bdd7fb_2hdf5:                1.10.2-hac2f561_1icc_rt:              2017.0.4-h97af966_0icu:                 58.2-ha66f8fd_1intel-openmp:        2019.0-118jpeg:                9b-hb83a4c4_2keras:               2.2.4-0keras-applications:  1.0.6-py36_0keras-base:          2.2.4-py36_0keras-preprocessing: 1.0.5-py36_0kiwisolver:          1.0.1-py36h6538335_0libpng:              1.6.35-h2a8f88b_0libprotobuf:         3.6.0-h1a1b453_0markdown:            3.0.1-py36_0matplotlib:          3.0.0-py36hd159220_0mkl:                 2019.0-118mkl_fft:             1.0.6-py36hdbbee80_0mkl_random:          1.0.1-py36h77b88f5_1numpy:               1.15.3-py36ha559c80_0numpy-base:          1.15.3-py36h8128ebf_0openssl:             1.0.2p-hfa6e2cd_0pip:                 10.0.1-py36_0protobuf:            3.6.0-py36he025d50_0pyparsing:           2.2.2-py36_0pyqt:                5.9.2-py36h6538335_2python:              3.6.7-h33f27b4_0python-dateutil:     2.7.3-py36_0pytz:                2018.5-py36_0pyyaml:              3.13-py36hfa6e2cd_0qt:                  5.9.6-vc14h1e9a669_2scipy:               1.1.0-py36h4f6bf74_1setuptools:          40.4.3-py36_0sip:                 4.19.8-py36h6538335_0six:                 1.11.0-py36_1sqlite:              3.25.2-hfa6e2cd_0tensorboard:         1.11.0-py36he025d50_0tensorflow:          1.11.0-eigen_py36h346fd36_0tensorflow-base:     1.11.0-eigen_py36h45df0d8_0termcolor:           1.1.0-py36_1tornado:             5.1.1-py36hfa6e2cd_0vc:                  14.1-h0510ff6_4vs2015_runtime:      14.15.26706-h3a45250_0werkzeug:            0.14.1-py36_0wheel:               0.32.2-py36_0wincertstore:        0.2-py36h7fe50ca_0yaml:                0.1.7-hc54c509_2zlib:                1.2.11-h8395fce_2

答案1

小编典典

此问题已在此处报告,并已在此处修复。该修补程序将在matplotlib
3.0.1中提供,该版本计划在未来几天内发布。

在此之前,您可以将python <= 3.6.6与matplotlib 3.0.0结合使用。或者,您可以使用matplotlib
2.2.3,也可以尝试在链接的问题中提出的修复程序,即在matplotlib找到它的路径之一中创建matplotlibrc文件。

关于Matplotlib图facecolor背景色的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ImportError:未安装带有matplotlib的名为matplotlib的模块、java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本、matplotlib - 数据框 - 如何在 matplotlib 的背景上有真实的地图、matplotlib 3.0.0,无法从“ matplotlib”导入名称“ get_backend”等相关知识的信息别忘了在本站进行查找喔。

本文标签: