我看到我可以用Python 绘图:
import matplotlib
matplotlib.pyplot.plot(...)
Run Code Online (Sandbox Code Playgroud)
要么:
import pylab
pylab.plot(...)
Run Code Online (Sandbox Code Playgroud)
这两个都使用相同的matplotlib绘图代码.
那么,Python社区推荐哪一种作为更好的绘图方法呢?为什么?
我有一个PyCharm和matplotlib的问题,我似乎无法纠正.
当我使用PyCharm和ipython作为解释命令的控制台时,在我保存图形之前不会显示图形.但是,当我尝试从PyCharm外部绘图时,这不会发生.
这是一个在PyCharm 中失败的exmaple进程:
In[2]: import matplotlib.pyplot as plt
Backend MacOSX is interactive backend. Turning interactive mode on.
In[3]: plt.plot([1,2,3,4],[1,4,9,16], 'ro')
Run Code Online (Sandbox Code Playgroud)
这将打开一个标有"图1"标签的窗口.但是,没有绘图,鼠标悬停在它上面时切换到SPOD(我在Mac上).此时,我可以试试
In[4]: plt.show()
Run Code Online (Sandbox Code Playgroud)
但仍然没有出现情节.但是,如果我这样做:
In[5]: plt.savefig('foo.png')
Run Code Online (Sandbox Code Playgroud)
不仅用该名称保存图形,图形显示在图1窗口中.请注意,PyCharm已经设置了交互模式,并且已经识别出我的后端(应该是?)MacOS.
我在通用终端会话中通过python和ipython控制台使用相同的过程,甚至通过emacs,并且在所有情况下,情节都出现在调用plt.plot()线路上.无需plt.show()通话.
实际上,我甚至可以通过PyCharm使用终端并获得所需的情节.一个答案是我应该使用这些方法进行绘图并忽略PyCharm.然而,假设我发现PyCharm的"花里胡哨"足够吸引人,我真的想用它作为我的IDE,但希望能够检查情节而不必经历plt.savefig()麻烦(因为我没有我想要保持我尝试的每一个阴谋.
我也试过切换后端plt.switch_backend().我已经尝试了列出的所有选项,所有这些选项都失败的原因主要是没有安装某些软件包或者系统错误.我没有尝试安装任何东西来使用新的后端,所以我不知道是否有另一个正确安装的后端可以解决这个问题.当然,更愿意尝试!
系统细节:
MacBookPro Retina 2012年中期,16GB内存,优胜美地10.10
Python 3.4.2
ipython 2.3.1
PyCharm Community Edition 4.0.4
请注意,我已根据以下问题审核并尝试了各种修补程序:
尽管我打电话给pyplot.show(),matplotlib也没有显示我的图画
编辑 如下面的评论中所述,这似乎是一个错误,而不是我的设置失败.因此,我正在修改这个问题,询问是否有已知的解决方法.
我是Matplotlib的新手,遇到过这个问题.我正在使用Ubuntu系统.我从Matplotlib 0.99开始,意识到我真的需要新版本中"triplot"的新功能.所以我下载了最新版本
git clone git://github.com/matplotlib/matplotlib.git
Run Code Online (Sandbox Code Playgroud)
并安装它.但是,当我以交互方式使用python时,pyplot.show()并没有向我显示我绘制的图形,也没有响应任何错误消息.pyplot.show()确实在旧版本的matplotlib 0.99中工作.
更具体地说,我似乎没有问题导入包中的"matplotlib"或模块; 我可以生成一堆数字的pdf文件,但我不能通过pyplot.show()在代码末尾输入来显示数字.谁能帮我?谢谢!
我在 Eclipse 下使用 matplotlib 遇到了一个奇怪的问题,我已经测试了这段代码,并且在命令行中工作正常:
import matplotlib.pyplot as plt
import matplotlib.pylab as pylab
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是当我在 Eclipse 下执行这段代码时,没有任何显示。我看到 pydev 理解我的所有导入并且没有错误消息。
我已经安装了一个virtualenv与pyenv使用Python v2.7.12。在这个 virtualenv 中,我matplotlib通过以下方式安装了v1.5.1:
pip install matplotlib
Run Code Online (Sandbox Code Playgroud)
没有问题。问题是一个简单的
import matplotlib.pyplot as plt
plt.scatter([], [])
plt.show()
Run Code Online (Sandbox Code Playgroud)
脚本无法生成绘图窗口。我在 virtualenv 中看到的后端使用:
import matplotlib
print matplotlib.rcParams['backend']
Run Code Online (Sandbox Code Playgroud)
is agg,这显然是问题的根本原因。如果我在系统范围的安装中检查后端,我会得到Qt4Agg(运行时上面的脚本显示一个绘图窗口就好了)。
SO中已经有几个类似的问题,我已经尝试了所有这些问题中给出的解决方案。
尝试使用--system-site-packages选项创建 virtualenv 。不行。
如何确保 Python 3 virtualenv 中的 matplotlib 使用 TkAgg 后端?
已安装sudo apt install tk-dev,然后使用 重新安装pip --no-cache-dir install -U --force-reinstall matplotlib。后端仍然显示为agg.
我正在尝试运行以下python脚本(我正在使用Vim):
import numpy as np;
import scipy as sp;
from scipy import misc;
import matplotlib.pyplot as plt;
image = misc.imread('test_image.jpg');
np.fliplr(image);
plt.imshow(image);
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到以下内容:
Traceback (most recent call last):
File "test.py", line 4, in <module>
import matplotlib.pyplot as plt;
File "/Library/Python/2.7/site-packages/matplotlib/pyplot.py", line 24, in <module>
import matplotlib.colorbar
File "/Library/Python/2.7/site-packages/matplotlib/colorbar.py", line 29, in <module>
import matplotlib.collections as collections
File "/Library/Python/2.7/site-packages/matplotlib/collections.py", line 23, in <module>
import matplotlib.backend_bases as backend_bases
File "/Library/Python/2.7/site-packages/matplotlib/backend_bases.py", line 50, in <module>
import matplotlib.textpath as textpath
File "/Library/Python/2.7/site-packages/matplotlib/textpath.py", line 11, …Run Code Online (Sandbox Code Playgroud)