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

因为我的导入使用pltimport 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