问题:尽管我调用pyplot.show(),但matplotlib不会显示我的绘图
matplotlib上需要帮助。是的,我没有忘记调用pyplot.show()。
$ ipython –pylab
import matplotlib.pyplot as p
p.plot(range(20), range(20))
它matplotlib.lines.Line2D at 0xade2b2c
作为输出返回。
p.show()
没事了 没有错误讯息。没有新窗口。没有。我matplotlib
使用pip进行安装,但未收到任何错误消息。
细节:
我用,
- 的Ubuntu
- IPython v0.11
- Python v2.6.6
- matplotlib v1.0.1
回答 0
如果将后端设置为template
中~/.matplotlib/matplotlibrc
,则可以重现您的症状:
〜/ .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
,则应该会看到一个图。您可以使用以下命令列出计算机上所有可用的后端
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']
参考:
回答 1
我在Ubuntu 12.04上遇到了完全相同的问题,因为我使用以下命令安装了matplotlib(在virtualenv中)
pip install matplotlib
长话短说,我的建议是:不要尝试使用pip或手工安装matplotlib;让真正的软件包管理器(例如apt-get / synaptic)为您安装它及其所有依赖项。
不幸的是,matplotlib的后端(用于实际绘制图的替代方法)具有pip无法处理的各种依赖关系。更糟糕的是,它无声地失败了。也就是说,pip install matplotlib
似乎成功安装了matplotlib。但是,当您尝试使用它时(例如pyplot.show()
),将不会出现绘图窗口。我尝试了网络上人们建议的所有不同后端(Qt4Agg,GTK等),但它们都失败了(即,当我尝试导入matplotlib.pyplot时,我得到了,ImportError
因为它试图导入缺少的某些依赖项)。然后,我研究了如何安装这些依赖项,但这只是让我想放弃使用pip(在virtualenv内)作为任何具有非Python软件包依赖项的软件包的可行安装解决方案。
整个经历使我爬回apt-get / synaptic(即Ubuntu软件包管理器)来安装matplotlib之类的软件。那很好。当然,这意味着您只能安装到您的系统目录中,没有virtualenv的好处,并且您受困于Ubuntu发行的版本,这可能落后于当前版本…
回答 2
%matplotlib内联
对于使用笔记本的我来说,在绘图工作之前添加以上行。
回答 3
备查,
我遇到了同样的问题-pylab没有在ipython下显示。通过更改ipython的配置文件{ipython_config.py}已解决了该问题。在配置文件中
c.InteractiveShellApp.pylab = 'auto'
我将’auto’更改为’qt’,现在我看到了图表
回答 4
只需输入:
plt.ion()
请在23:30 参见https://www.youtube.com/watch?v=1zmV8lZsHF4!
plt
使用是因为我的导入:import matplotlib.pyplot
as plt
我在带有iTerm2的Mac上使用python2.7。
回答 5
解决我问题的方法只是在顶部的ipython Notebook中使用以下两行
%matplotib inline
%pylab inline
而且有效。我正在使用Ubuntu16.04和ipython-5.1
回答 6
我必须从源代码安装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所说,通过更改后端,我遇到了很多问题,所有不同的后端都不起作用。
回答 7
在导入pylab之前添加以下两行似乎对我有用
import matplotlib
matplotlib.use("gtk")
import sys
import pylab
import numpy as np
回答 8
确保启用此启动脚本:(“首选项”>“控制台”>“高级选项”)
/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py
如果启用了标准的PYTHONSTARTUP,则不会有交互式绘图
回答 9
类似@Rikki,我通过升级解决了这个问题matplotlib
用pip install matplotlib --upgrade
。如果无法升级,则可以卸载并重新安装。
pip uninstall matplotlib
pip install matplotlib
回答 10
对我来说,如果我只是在macOS 下创建一个空 matplotlibrc
文件,就会发生问题~/.matplotlib
。在其中添加“后端:macosx”可解决此问题。
我认为这是一个错误:如果backend
未在我的代码中指定,matplotlibrc
则应采用默认值。
回答 11
运行代码后,包括:
import pylab as p
p.show()
回答 12
我发现我需要window = Tk()
,然后window.mainloop()
回答 13
对于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