matplotlib 我怎样才能保持最后的动画帧与blit =真

lnvxswe2  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(135)

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

pjngdqdw

pjngdqdw1#

一种解决方法是使用最后一帧初始化动画。明显的缺点是你必须预先计算最后一帧。修改this example将是

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")

相关问题