Python matplotlib不显示图形,尽管我调用pyplot.show()

Python matplotlib不显示图形,尽管我调用pyplot.show(),python,matplotlib,tech-chat-ml,Python,Matplotlib,Tech Chat Ml,matplotlib上需要帮助。是的,我没有忘记调用pyplot.show() $ipython--pylab 它返回0xade2b2c处的matplotlib.lines.Line2D作为输出 p.show() 没有什么事情要发生。没有错误消息。没有新窗口。没有什么。我使用pip安装了matplotlib,没有收到任何错误消息 详情: 我用 Ubuntu IPython v0.11 Python v2.6.6 matplotlib v1.0.1 如果我在~/.matplotlib/matp

matplotlib上需要帮助。是的,我没有忘记调用pyplot.show()

$ipython--pylab 它返回0xade2b2c处的
matplotlib.lines.Line2D作为输出

p.show()
没有什么事情要发生。没有错误消息。没有新窗口。没有什么。我使用pip安装了
matplotlib
,没有收到任何错误消息

详情:

我用

  • Ubuntu
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1

如果我在
~/.matplotlib/matplotlibrc
中将后端设置为
模板
, 然后我可以重现你的症状:

~/.matplotlib/matplotlibrc:

# backend      : GtkAgg
backend      : template
请注意,文件
matplotlibrc
可能不在目录
~/.matplotlib/
中。在这种情况下,以下代码显示了它的位置:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

它应该返回如下列表:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']
参考:

供将来参考

我也遇到了同样的问题——pylab在ipython下没有出现。通过更改ipython的配置文件{ipython_config.py},该问题已得到修复。在配置文件中

c.InteractiveShellApp.pylab='auto'


我将“auto”改为“qt”,现在我看到了图表,我在Ubuntu 12.04上遇到了完全相同的问题,因为我使用

长话短说,我的建议是:不要试图使用pip或手动安装matplotlib;让真正的软件包管理器(例如apt get/synaptic)为您安装它及其所有依赖项

不幸的是,matplotlib的后端(实际渲染绘图的替代方法)具有pip无法处理的各种依赖关系。更糟糕的是,它默默地失败了;也就是说,
pip install matplotlib
显示为成功安装matplotlib。但是当您尝试使用它时(例如,
pyplot.show()
),将不会显示任何绘图窗口。我尝试了web上人们建议的所有不同的后端(Qt4Agg、GTK等),但都失败了(即,当我尝试导入matplotlib.pyplot时,我得到了
ImportError
,因为它试图导入缺少的某些依赖项)。然后我研究了如何安装这些依赖项,但这让我想放弃使用pip(在virtualenv中)作为任何具有非Python包依赖项的包的可行安装解决方案

整个经历让我爬回apt get/synaptic(即Ubuntu软件包管理器)安装matplotlib之类的软件。这非常有效。当然,这意味着你只能安装到你的系统目录中,而不能安装virtualenv,你只能使用Ubuntu发布的版本,这可能远远落后于当前版本……

对于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

确保已启用此启动脚本: (首选项>控制台>高级选项)

如果启用了标准PYTHONSTARTUP,则不会有交互式绘图

%matplotlib inline


对于使用笔记本电脑的我来说,在绘图工作之前添加上述行。

我必须从源代码安装matplotlib才能使其工作。主要说明(来自)如下:


正如@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,只需键入:

plt.ion()

23:30见

由于我的导入而使用了
plt
import matplotlib.pyplot
作为plt


我在mac上使用python2.7和iTerm2。

类似于@Rikki,我通过升级
matplotlib
pip安装matplotlib--upgrade
解决了这个问题。如果无法升级,卸载和重新安装可能会起作用

pip uninstall matplotlib
pip install matplotlib

对我来说,如果我只是在macOS上的
~/.matplotlib
下创建一个空的
matplotlibrc
文件,就会出现问题。在其中添加“backend:macosx”可以解决这个问题


我认为这是一个错误:如果在我的
matplotlibrc
中未指定
后端
,则应采用默认值。

运行代码后,包括:

import pylab as p
p.show()

我发现我需要
window=Tk()
,然后
window.mainloop()

我试过了,但我得到了一个类似这样的错误:
ImportError:没有名为_backend\u gdk的模块
,很抱歉有很多评论。它起作用了。我试过Qt4Agg并击中。谢谢:)。。最后一件事,我在哪里可以找到默认的matplotlibrc,或者有没有办法创建它?很抱歉,不整洁。我想关于matplotlibrc的更多信息在这里,答案是旧的,配置现在应该在
~/.config/matplotlib/matplotlibrc
(至少对于python 3)。我刚刚遇到了一个相关的问题,我认为这是由于在Python2.7中使用matplotlib造成的,它创建了一个
~/.matplotlib/
目录,并阻止Python3读取
~/.config/matplotlib/
中的配置。删除
~/.matplotlib/
为我解决了这个问题。或者使用“ipython--pylab=qt”这将起作用,但这只是部分解决方案:如果默认后端是
agg
,我认为
%pylab inline
不会起作用,直接运行脚本时也不会显示绘图,即:
python myscript.py
。unutbu的答案应该能解决所有问题。你试过这个选项吗?%Christopher Lee没有显示任何错误的数字的问题/其他抱怨是因为
pip安装时默认的后端是
agg
。我不知道为什么,但你可以根据联合国大学的答案来改变它
pip
的主要优点是安装最新版本-
apt
安装过时版本。有时,您需要/需要一些bug修复/新功能。同意@drevicko
pip
通常是一个很好的选择
/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py
$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install
import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np
%matplotib inline
%pylab inline
pip uninstall matplotlib
pip install matplotlib
import pylab as p
p.show()