【问题标题】:pyplot.show() fails to produce graph, causes IDLE to restartpyplot.show() 无法生成图形,导致 IDLE 重新启动
【发布时间】:2011-04-28 14:20:50
【问题描述】:

我刚刚在我的 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

【问题讨论】:

  • 尝试从终端窗口运行它。只需输入python 并执行与 IDLE 相同的操作。

标签: python matplotlib


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2019-10-03
      相关资源
      最近更新 更多