1

我在使用 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 更新)停留在后台。如果我调整窗口大小(单击窗口的一角并移动鼠标)。第一行消失了,但现在调整大小后的第一行保留在后台。

这是正常的,还是我做错了什么。

提前致谢

4

1 回答 1

1

如果您不太担心速度,请删除blit=True它,它应该可以工作。

Blitting 是一种通过仅重新绘制已更改的图形位(而不是所有内容)来节省时间的方法,但很容易弄乱。如果您不包括blit=True所有艺术家,则每次都会重新绘制。

我建议阅读python matplotlib blit 到图形的轴或边?动画 Matplotlib 面板 - blit 留下旧帧

于 2013-02-13T05:12:33.063 回答