Animation 当我使用blit=True的matplotlib动画函数时,如何保持最后一帧

Animation 当我使用blit=True的matplotlib动画函数时,如何保持最后一帧,animation,matplotlib,blit,Animation,Matplotlib,Blit,我必须设置blit=true,因为绘图速度要快得多。但是在动画(repeat=false)之后,如果我在图形中使用缩放,图形就会消失。我需要保留最后一帧,以便放大最后一个图形 谢谢 一个解决方法是使用最后一帧初始化动画。明显的缺点是你必须预先计算最后一帧。适应将是 我目前不确定原因,但我申请了这个不要忘记。谢谢!我正在考虑一些技巧来“绕过”这个问题,比如在动画完成后再次只绘制最后一帧。我遇到了同样的问题,作为解决方法,我修改了传递给FuncAnimation的帧生成器,以无限地生成最后一个元素。

我必须设置blit=true,因为绘图速度要快得多。但是在动画(repeat=false)之后,如果我在图形中使用缩放,图形就会消失。我需要保留最后一帧,以便放大最后一个图形


谢谢

一个解决方法是使用最后一帧初始化动画。明显的缺点是你必须预先计算最后一帧。适应将是


我目前不确定原因,但我申请了这个不要忘记。谢谢!我正在考虑一些技巧来“绕过”这个问题,比如在动画完成后再次只绘制最后一帧。我遇到了同样的问题,作为解决方法,我修改了传递给FuncAnimation的帧生成器,以无限地生成最后一个元素。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()

x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))

cnt = 50 # Define so we know what the last frame will be.

def init():
    # Note the function is the same as `animate` with `i` set to the last value
    line.set_ydata(np.sin(x + cnt / 100))
    return line,

def animate(i):
    line.set_ydata(np.sin(x + i / 100))  # update the data.
    return line,

ani = animation.FuncAnimation(
    fig, animate, init_func=init, interval=2, blit=True, save_count=cnt)

ani.save("mwe.mov")
fig.savefig("mwe.png")