我刚刚在我的 MacBook(运行 Snow Leopard)上安装了 Python 2.7.1,并且还安装了 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
最佳答案
该问题可能是由于idle 和 matplotlib 后端之间的冲突造成的。不要使用idle,而是尝试使用 super 包中包含的ipython,并以pylab模式启动ipython,即在命令行运行ipython -pylab
。
关于python - pyplot.show() 无法生成图表,导致 IDLE 重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820102/