在过去,我能够使用带有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后端的一个错误。)
答案 0 :(得分:2)
尝试删除行matplotlib.use('Qt4Agg')
。适合我。也适用于matplotlib.use('TkAgg')
。所以这是一个后端问题。有another way个动画。