too*_*oom 7 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
Run Code Online (Sandbox Code Playgroud)
因此,工作正常时plt.show
不打开窗户或任何东西plt.savefig
.
可能是什么问题呢?
wim*_*wim 15
Pyplot只会弹出一个数字窗口
matplotlib.rcParams['interactive'] == True
Run Code Online (Sandbox Code Playgroud)
如果您:
plt.ion()
在你的脚本中调用过,或者matplotlib.interactive(True)
或--pylab
在命令行启动了一个带有选项的ipython会话.当交互模式关闭时,您通常必须plt.show()
明确调用以弹出图形窗口.这是因为我们经常想在显示图形之前多次调用绘图来绘制各种内容(这是一个阻塞调用).
编辑(修改问题后):
plt.show()
不弹出数字窗口的一个原因是您没有激活交互式后端.检查输出plt.get_backend()
- 如果它返回'agg'
,例如,你有一个非交互式后端.
如果这是你的问题,你可以添加像
import matplotlib
matplotlib.use('MacOSX')
Run Code Online (Sandbox Code Playgroud)
在脚本开始时指定后端.这需要放在任何其他matplotlib相关导入之前.
要使此类更改成为永久更改,您可以通过修改matplotlib rcfile将不同的后端指定为默认值.通过调用找到该文件的位置matplotlib.matplotlib_fname()
.