matplotlib.pyplot.draw()和matplotlib.pyplot.show()没有效果

时间:2015-05-25 19:27:47

标签: python python-3.x numpy matplotlib

在过去,我能够使用带有for循环的matplotlib进行简单的动画制作,但现在已经有一段时间了。

标准答案是您必须打开交互模式和/或强制使用matplotlib.pyplot.draw()重绘。这是我最小的工作示例:

import numpy as np
import matplotlib

matplotlib.use('Qt4Agg')

import matplotlib.pyplot as mplot

mplot.ion()

fig = mplot.figure(1)
ax = fig.add_subplot(111)

for ii in np.arange(0,10):
    x = 200*np.random.rand(30)
    ax.plot(x)
    mplot.draw()
    filename = ("img_%d.png" % ii)
    mplot.savefig(filename)

当我在Interactive Python Editor中运行时,我会在最后得到一个数字,其中包含所有情节(这也发生在mplot.show()

当我从命令行在IPython 3.1(使用Python 3.3.5)中运行它时,我什么也得不到。

mplot.savefig(filename)行确实有效,因为生成了图像。

(这可能是Qt4后端的一个错误。)

1 个答案:

答案 0 :(得分:2)

尝试删除行matplotlib.use('Qt4Agg')。适合我。也适用于matplotlib.use('TkAgg')。所以这是一个后端问题。有another way个动画。