import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# Dummy data for the example
data = np.random.rand(100, 2)
# Function to update the plot
def update(frame_number):
current_data = data[:frame_number+1, :]
sc.set_offsets(current_data)
return sc,
# Set up the plot
fig, ax = plt.subplots()
sc = ax.scatter([], [])
# Set axis limits
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
# Create the animation
ani = FuncAnimation(fig, update, frames=range(len(data)), interval=50, blit=True)
# To display the animation in Jupyter Notebook
# (remove this line if running the script outside of Jupyter)
from IPython.display import HTML
HTML(ani.to_jshtml())
# To save the animation as a file
# ani.save('animation.mp4', writer='ffmpeg', dpi=100)
# Show the plot (not necessary if using HTML())
plt.show()
1条答案
按热度按时间cunj1qz11#
为了让你的动画达到一致的帧率,我建议使用
matplotlib.animation
模块中的FuncAnimation
类。这个模块允许你通过反复调用一个函数来更新情节来创建动画。这样,你就可以预定义帧数并控制帧率。下面是一个如何创建简单动画的例子:在本例中,我创建了一个包含100帧的散点图动画,每50毫秒更新一次散点图。
update
函数被调用于每一帧,并更新散点图数据。FuncAnimation
对象管理动画。您可以通过取消注解
ani.save()
行并相应地调整参数,将动画保存为文件(例如.mp4、.gif)。