使用 Writer 类将动画保存到文件中,然后使用 plt.show() 来显示整个动画。示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation, FFMpegWriter
# 生成数据
x_data = np.linspace(0, 2*np.pi, 100)
y_data = np.sin(x_data)
# 创建画布和子图
fig, ax = plt.subplots()
# 设置坐标轴范围
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
# 创建初始状态的曲线
line, = ax.plot([], [])
# FuncAnimation 的更新函数
def update(frame):
# 计算新的曲线数据
y_data = np.sin(x_data + frame/10)
# 更新曲线
line.set_data(x_data, y_data)
return line,
# 使用 FFMpegWriter 类保存动画到文件中
writer = FFMpegWriter(fps=30)
anim = FuncAnimation(fig, update, frames=100, blit=True)
anim.save('my_animation.mp4', writer=writer)
# 显示整个动画
plt.show()
在上面的示例中,我们使用了 FFMpegWriter 类来将动画保存到文件中,然后使用 plt.show() 来显示整个动画。这样就可以避免使用 plt.show() 时只显示一帧的问题。