Python matplotlib不显示图形,尽管我调用pyplot.show()
matplotlib上需要帮助。是的,我没有忘记调用pyplot.show() $ipython--pylab 它返回0xade2b2c处的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.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修复/新功能。同意@drevickopip
通常是一个很好的选择
/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()