我刚在MacBook上安装了Python 2.7.1(运行Snow Leopard),我还安装了scipy superpack。 NumPy和matplotlib导入很好,但是当我在解释器或脚本中调用pyplot.show()时,会出现一个空白窗口,然后IDLE重新启动。没有图表。
我写了一个非常简单的测试脚本,它出现在下面的截图中。它创建两个列表,打印它们,将两个列表相互绘制,并将绘图输出到png。它成功了,您可以看到png确实存在于相应的文件夹中。所以pyplot.savefig()按预期工作。但后来我调用了pyplot.show(),你可以看到解释器已经重启了。
我该如何解决这个问题?
根据@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
答案 0 :(得分:1)
问题可能是由于空闲和matplotlib后端之间存在冲突。而不是使用idle,尝试使用ipackthon,它包含在superpack中,并以pylab模式启动ipython,即在命令行运行ipython -pylab
。
答案 1 :(得分:0)
只需使用 导入pylab pylab.show() 这将在单独的窗口中显示图形。