我遇到了FuncAnimation的问题,我使用了一个稍微修改过的示例http://matplotlib.org/examples/animation/basic_example.html
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def update_line(num, data, line):
data.pop(0)
data.append(np.random.random())
line.set_ydata(data)
return line,
fig1 = plt.figure()
data = [0.0 for i in xrange(100)]
l, = plt.plot(data, 'r-')
plt.ylim(-1, 1)
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l), interval=50, blit=True)
plt.show()
问题是第一行(由update_line更新)保留在后台。 如果我调整窗口大小(单击窗口的一角并移动鼠标)。第一行消失,但现在调整大小后的第一行保留在后台。
这是正常的,还是我做错了什么。
提前致谢
答案 0 :(得分:1)
如果您对速度并不过分担心,请移除blit=True
,它应该有效。
Blitting是一种通过仅重新绘制已更改的图形位(而不是所有内容)来节省时间的方法,但很容易搞砸。如果您不包含blit=True
,则每次都会重新绘制所有艺术家。
我建议您阅读python matplotlib blit to axes or sides of the figure?和Animating Matplotlib panel - blit leaves old frames behind。