尽管我打电话给pyplot.show(),matplotlib也没有显示我的图画

Bas*_*aya 161 python matplotlib tech-chat-ml

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

$ ipython --pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))
Run Code Online (Sandbox Code Playgroud)

matplotlib.lines.Line2D at 0xade2b2c作为输出返回.

p.show()
Run Code Online (Sandbox Code Playgroud)

没有任何事情发生.没有错误消息.没有新窗口.没有.我matplotlib使用pip 安装,我没有收到任何错误消息.

细节:

我用,

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

unu*_*tbu 170

如果我设置我的后端template~/.matplotlib/matplotlibrc,那么我可以重现你的症状:

〜/ .matplotlib/matplotlibrc:

# backend      : GtkAgg
backend      : template
Run Code Online (Sandbox Code Playgroud)

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

>>> import matplotlib
>>> matplotlib.matplotlib_fname()
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)

如果你编辑~/.matplotlib/matplotlibrc并将后端更改为类似的东西GtkAgg,你应该看到一个情节.您可以列出计算机上可用的所有后端

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
Run Code Online (Sandbox Code Playgroud)

它应该返回一个列表,如:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']
Run Code Online (Sandbox Code Playgroud)

参考:

  • 这个答案很老,配置现在应该在`〜/ .config/matplotlib/matplotlibrc`中(至少对于python 3).我刚刚遇到了一个相关的问题,我认为它是由python 2.7中的matplotlib引起的,它创建了一个`〜/ .matplotlib /`目录,并停止了python 3读取`〜/ .config/matplotlib /中的配置.删除`〜/ .matplotlib /`为我解决了问题. (8认同)
  • 很抱歉有很多评论.有用.我试过Qt4Agg并点击.谢谢:) ..最后一件事,我在哪里可以找到默认的matplotlibrc或有什么方法可以创建它? (6认同)
  • 我没有任何rc文件.有趣.我在网上搜索默认的rc文件... (3认同)
  • 6年后,这个问题仍然存在......现在我记得为什么我讨厌Python:每行代码都有问题. (3认同)
  • 我试过但是我得到了一个错误:`ImportError:没有名为_backend_gdk的模块 (2认同)

Chr*_*Lee 67

我在Ubuntu 12.04上遇到了完全相同的问题,因为我安装了matplotlib(在virtualenv中)

pip install matplotlib
Run Code Online (Sandbox Code Playgroud)

长话短说,我的建议是:不要尝试使用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这样的软件.这非常有效.当然,这意味着你只能安装到你的系统目录中,没有真正的优点,而且你仍然坚持使用Ubuntu分发的版本,这可能落后于当前版本......

  • 您是否尝试过[`--system-site-packages`](http://www.virtualenv.org/en/latest/#the-system-site-packages-option)选项? (5认同)
  • 你的答案很长,你可以考虑缩短OP. (2认同)
  • 只是停用`virtualenv`工作了!我能够从系统源(在Ubuntu上)安装matplotlib 1.4,但不能在`virtualenv`下安装. (2认同)

小智 31

%matplotlib内联

对于我使用笔记本,在绘图工作之前添加上面的行.


小智 9

备查,

我遇到了同样的问题 - 在ipython下没有显示pylab.通过更改ipython的配置文件{ipython_config.py}来解决此问题.在配置文件中

c.InteractiveShellApp.pylab = 'auto'

我将'auto'改为'qt',现在我看到了图表

  • 或使用"ipython --pylab = qt" (4认同)

小智 9

只需输入:

plt.ion()

请在23:30 访问https://www.youtube.com/watch?v=1zmV8lZsHF4!

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

我在带有iTerm2的mac上使用python2.7.


Bha*_*ngh 8

什么解决了我的问题只是在顶部的ipython笔记本中使用以下两行

%matplotib inline
%pylab inline
Run Code Online (Sandbox Code Playgroud)

它奏效了.我正在使用Ubuntu16.04和ipython-5.1