我正在尝试使用animation.FuncAnimation
制作最简单的matplotlib动画。我不关心效率。我不想跟踪绘制的线条并更新它们的数据(在我想要的应用程序中这会很烦人),我只是想在动画每一帧之前擦除绘图。我认为这样的事情应该有效,但不是......
import matplotlib.animation as animation
fig = Figure()
def updatefig(i):
clf()
p = plot(rand(100))
draw()
anim = animation.FuncAnimation(fig, updatefig, range(10))
答案 0 :(得分:1)
至少这似乎有效:
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
def updatefig(i):
fig.clear()
p = plt.plot(np.random.random(100))
plt.draw()
anim = animation.FuncAnimation(fig, updatefig, 10)
anim.save("/tmp/test.mp4", fps=1)
原始代码的问题是Figure
写有大写字母F(应为figure
)。
否则,我建议不要使用pylab
样式“同一命名空间中的所有内容”方法matplotlib
。此外,使用面向对象的界面而不是plt.draw
,plt.plot
等将在以后节省很多麻烦。