【问题标题】:Plot doesn't reset at the end of animation with matplotlib.animation使用 matplotlib.animation 在动画结束时绘图不会重置
【发布时间】:2019-08-18 00:12:28
【问题描述】:

我正在使用 matplotlib.animation 创建一个 4 条连杆。在 arrX# arrY# 变量中,我有行的 x&y(每行 360 个值)。我正在使用 matplotlib 网站上的标准模板。 在可变帧从 0 到 359 的一个循环中,一切都很好。但是当它进行第二个循环时,最后一个循环的末尾(帧 = 359)的图像会留在图上。在每个下一个情节结束时,它会一次又一次地绘制。

如何重置情节或如何消除循环末尾的旧行?

代码如下。 图像显示了两组线,其中一组线是静态的,不会消失,并在每个循环结束时一次又一次地重绘。

from matplotlib.animation import FuncAnimation

fig, ax = plt.subplots()
ln1, = plt.plot([], [], '-r')
ln2, = plt.plot([], [], '-b')
ln3, = plt.plot([], [], '-g')

def init():
    ax.set_xlim(-100, 300)
    ax.set_ylim(-100, 200)
    return ln1,ln2,ln3

def update(frame):
    xdata=(arrX2[frame])
    ydata=(arrY2[frame])
    ln1.set_data([0,xdata], [0,ydata])
    ln2.set_data([xdata,arrX3[frame]],[ydata,arrY3[frame]])
    ln3.set_data([d,arrX3[frame]],[0,arrY3[frame]])
    return ln1,ln2,ln3

ani = FuncAnimation(fig, update, frames=range(0,360,1), init_func=init, blit=True,interval=1)
plt.show()

【问题讨论】:

  • 当我摆脱 init 功能时,它可以工作。但为什么?这是我所做的:我从 init 中取出这两行并将其放在它之外。这样我仍然有机会定义情节。: ax.set_xlim(-100, 300); ax.set_ylim(-100, 200) 然后在 FuncAnimation 中删除了 init_func=init 但我不明白为什么它现在这样工作。跨度>
  • 我似乎无法重现您的问题。请提供Minimal, Complete, and Verifiable example,即其中还包括编造的数据,以便调查问题
  • 我会尝试将lnXXXX.set_data([], []) 包含在您的init() 函数中
  • @DizietAsahi,是的,我试过了。没用。

标签: python python-3.x matplotlib animation


【解决方案1】:

当我创建“可验证示例”时,我发现了问题。 最初我的 init() 函数是这样的:

def init():
ax.set_xlim(-100, 300)
ax.set_ylim(-100, 200)
return ln1,ln2,ln3

这是错误的。这个函数应该只保存空对象,以便动画师可以在这里查看并查看 update() 函数中每一帧需要更新哪些对象。

否则,在我的示例中,一旦“视频卷轴”结束,并且重新初始化的时间到了,它就会简单地绘制最后一个已知的线对象。

init() 函数中,我只保留了空行对象。这行得通。

def init():
ln1, = plt.plot([], [], '-r')
ln2, = plt.plot([], [], '-b')
ln3, = plt.plot([], [], '-g')
return ln1,ln2,ln3,

我确信这是一个错误。如果不是,我只是不知道。

附:不确定是否需要将其保留在此处,因为这是语法错误。我把它留给更有经验的用户来决定:)

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多