为什么pyplot.show()不起作用?

22

可能是重复问题:
尽管我调用了pyplot.show(),但matplotlib没有显示我的绘图

我是Matplotlib的新手,遇到了这个问题。我使用的是Ubuntu系统。我最初使用的是Matplotlib 0.99,后来发现我真的需要新版本中的“triplot”功能。所以我下载了最新版本:

git clone git://github.com/matplotlib/matplotlib.git

我安装了Matplotlib,但是当我使用Python交互式编程时,pyplot.show()没有显示我绘制的图形,也没有出现任何错误消息。在旧版本的Matplotlib 0.99中,pyplot.show()可以正常工作。

更具体地说,我导入"matplotlib"或包内的模块似乎没有问题;我可以生成一堆图形的PDF文件,但是我无法通过在代码末尾键入 pyplot.show() 来显示图像。有人能帮帮我吗?谢谢!


也许类似于这个问题:https://dev59.com/b2sz5IYBdhLWcg3w-85v - Thanasis Petsas
你是如何运行程序的?如果你在标准交互式Python解释器中,show命令将无法工作,因为它需要在单独的线程中运行,而交互式解释器会阻塞它。 ipython和其他更高级的交互式Shell部分原因就是为了解决这个问题。(它们还有很多标准交互式解释器没有的有用功能。) - Joe Kington
否则,可能是因为您没有安装Tk或其他GUI库的开发版本,因此matplotlib无法构建默认的交互式后端。 - Joe Kington
就此而言,最新版本的Ubuntu(Ocelot)具有版本1.0.1-3,即将发布的版本(Pangolin)将具有1.1.0-1 https://launchpad.net/ubuntu/+source/matplotlib。apt-get安装通常可以立即使用,并处理任何其他库。 - Hooked
1个回答

16
我遇到了同样的问题,并通过设置恰当的显示后端来解决了它,参照matplotlib does not show my drawings although I call pyplot.show()。有两种方法可以实现这一点:1.在导入matplotlib后立即在代码中设置后端:
import matplotlib
matplotlib.rcParams['backend'] = "Qt4Agg"

2. 或者在你的 matplotlibrc 文件中定义你的后端(如 matplotlib.matplotlib_fname() 所给出的):

backend      : Qt4Agg

更多信息请参见:http://matplotlib.sourceforge.net/users/customizing.html


你为我节省了大量的时间,谢谢你。 - Arty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接