pyplot.show()无法生成图形,导致IDLE重新启动

时间:2011-04-28 14:20:51

标签: python matplotlib

我刚在MacBook上安装了Python 2.7.1(运行Snow Leopard),我还安装了scipy superpack。 NumPy和matplotlib导入很好,但是当我在解释器或脚本中调用pyplot.show()时,会出现一个空白窗口,然后IDLE重新启动。没有图表。

我写了一个非常简单的测试脚本,它出现在下面的截图中。它创建两个列表,打印它们,将两个列表相互绘制,并将绘图输出到png。它成功了,您可以看到png确实存在于相应的文件夹中。所以pyplot.savefig()按预期工作。但后来我调用了pyplot.show(),你可以看到解释器已经重启了。

我该如何解决这个问题?

screen shot of python output

更新

根据@Blender的建议,我在脚本中添加了plt.show()并从终端运行它。这次它产生了以下错误消息:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/backend_tkagg.py", line 235, in resize
    self.show()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/backend_tkagg.py", line 239, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/tkagg.py", line 19, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode, id(bbox_array))
TclError

2 个答案:

答案 0 :(得分:1)

问题可能是由于空闲和matplotlib后端之间存在冲突。而不是使用idle,尝试使用ipackthon,它包含在superpack中,并以pylab模式启动ipython,即在命令行运行ipython -pylab

答案 1 :(得分:0)

只需使用          导入pylab          pylab.show() 这将在单独的窗口中显示图形。