matplotlib不显示我的图纸,虽然我叫pyplot.show()
我需要你关于matplotlib的帮助。 是的,我没有忘记调用pyplot.show()。
$ ipython –pylab
import matplotlib.pyplot as p p.plot(range(20), range(20))
它返回matplotlib.lines.Line2D at 0xade2b2c
作为输出。
p.show()
没有什么事情发生。 没有错误信息。 没有新窗口。 没有。 我通过使用pip来安装matplotlib
,但没有收到任何错误消息。
细节:
我用,
- Ubuntu的
- IPython v0.11
- Python v2.6.6
- matplotlib v1.0.1
如果我将后端设置为~/.matplotlib/matplotlibrc
template
,那么我可以重现您的症状:
〜/ .matplotlib / matplotlibrc:
# backend : GtkAgg backend : template
请注意, matplotlibrc
文件可能不在目录~/.matplotlib/
。 在这种情况下,下面的代码显示了它的位置:
>>> import matplotlib >>> matplotlib.matplotlib_fname()
In [1]: import matplotlib.pyplot as p In [2]: p.plot(range(20),range(20)) Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>] In [3]: p.show()
如果你编辑~/.matplotlib/matplotlibrc
并将后端GtkAgg
类的GtkAgg
,你应该会看到一个图。 您可以列出机器上可用的所有后端
import matplotlib.rcsetup as rcsetup print(rcsetup.all_backends)
它应该返回一个列表,如:
['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg', 'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf', 'ps', 'svg', 'template']
参考:
- 定制matplotlib
我在Ubuntu 12.04上遇到了同样的问题,因为我安装了matplotlib(在virtualenv中)使用
pip install matplotlib
长话短说,我的build议是:不要试图用pip或手工安装matplotlib; 让一个真正的包pipe理器(例如apt-get / synaptic)为你安装它和它的所有依赖项。
不幸的是,matplotlib的后端(用于实际绘制图的替代方法)具有pip将无法处理的各种依赖。 更糟的是,它失败了, 也就是说, pip install matplotlib
似乎安装matplotlib成功。 但是当你尝试使用它(例如pyplot.show()
)时,不会出现任何graphics窗口。 我尝试了networking上的所有不同的后端(Qt4Agg,GTK等),他们都失败了(即当我试图导入matplotlib.pyplot时,我得到ImportError
因为它试图导入一些缺失的依赖项)。 然后我研究了如何安装这些依赖关系,但是这只是让我想放弃使用pip(在virtualenv中)作为任何具有非Python包依赖关系的包的可行的安装解决scheme。
整个经历让我爬回apt-get / synaptic(即Ubuntu软件包pipe理器)来安装像matplotlib这样的软件。 这工作完美。 当然,这意味着你只能安装到你的系统目录中,没有virtualenv的好处,而且你坚持使用Ubuntu分发的版本,这可能会落后于当前的版本。
%matplotlib内联
对于我用笔记本工作,在情节工作之前添加上面的行。
备查,
我遇到了同样的问题 – pylab没有在ipython下显示。 通过更改ipython的configuration文件{ipython_config.py}解决了这个问题。 在configuration文件中
c.InteractiveShellApp.pylab = 'auto'
我改变了“自动”为“QT”,现在我看到图表
只需input:
plt.ion()
请在23:30查看https://www.youtube.com/watch?v=1zmV8lZsHF4 !
因为我的导入使用plt
: import matplotlib.pyplot
as plt
我在iTerm2的Mac上使用python2.7。
我不得不从源码安装matplotlib来得到这个工作。 关键指令(从http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ )是:
$ workon plotting $ pip uninstall matplotlib $ git clone https://github.com/matplotlib/matplotlib.git $ cd matplotlib $ python setup.py install
通过改变后端,@unutbu说,我只是遇到了更多的问题,所有不同的后端无法正常工作。
在导入pylab之前添加以下两行似乎为我工作
import matplotlib matplotlib.use("gtk") import sys import pylab import numpy as np
什么解决了我的问题只是在ipython笔记本顶端使用以下两行
%matplotib inline %pylab inline
它的工作。 我使用Ubuntu16.04和ipython-5.1
确保启用此启动脚本:(首选项>控制台>高级选项)
/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py
如果标准的PYTHONSTARTUP被启用,你将不会有一个交互式的情节
与@Rikki类似,我通过使用pip install matplotlib --upgrade
–upgrade来升级matplotlib
来解决这个问题。 如果您不能升级卸载并重新安装可能会起作用。
pip uninstall matplotlib pip install matplotlib
对我来说,如果我简单地在macOS上的~/.matplotlib
下创build一个空的 matplotlibrc
文件,就会发生问题。 在其中添加“后端:macosx”解决了这个问题。
我认为这是一个错误:如果backend
没有在我的matplotlibrc
指定,它应该采用默认值。
运行你的代码后,包括:
import pylab as p p.show()
对于Ubuntu 12.04:
sudo apt-get install python-qt4 virtualenv .env --no-site-packages source .env/bin/activate easy_install -U distribute ln -s /usr/lib/python2.7/dist-packages/PyQt4 . ln -s /usr/lib/python2.7/dist-packages/sip.so . pip install matplotlib