matplotlib show()方法没有打开窗口

时间:2014-02-17 17:44:09

标签: python matplotlib show

我正在使用mac,当我使用matplotlib执行以下操作时:

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import pylab as P

...
plt.plot(x,y)  
plt.show() <-- nothing happens
plt.savefig('figure.png') <-- works fine

因此,plt.showplt.savefig正常工作时无法打开窗口或任何内容。

可能是什么问题?

1 个答案:

答案 0 :(得分:14)

如果

,Pyplot只会弹出一个数字窗口
matplotlib.rcParams['interactive'] == True

如果你是这样的话:

  • 之前在您的脚本中调用过plt.ion()
  • 等效地称为matplotlib.interactive(True)
  • 在命令行中使用--pylab选项启动了ipython会话。

当交互模式关闭时,您通常必须明确调用plt.show()以弹出图形窗口。这是因为我们经常想多次调用plot来绘制各种东西,然后再显示图形(这是一个阻塞调用)。


编辑(修改问题后)

plt.show()没有弹出数字窗口的一个原因是你没有激活交互式后端。检查plt.get_backend()的输出 - 如果它返回'agg',例如,您有一个非交互式后端。

如果这是您的问题,您可以添加

等行
import matplotlib
matplotlib.use('MacOSX')

在脚本开头指定后端。这需要放在任何其他matplotlib相关导入之前。

要使此类更改成为永久更改,您可以通过修改matplotlib rcfile将默认的后端指定为默认值。通过调用matplotlib.matplotlib_fname()可找到此文件的位置。