animation包在matplotlib中,需要from matplotlib import animation,主要用于动画的制作,可以用来绘制运动的轨迹动画。
animation主要函数(animaton.FuncAnimation)
animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)
-fig:Figure对象,确定动画所在图
-func:创建每一帧图像的函数,更新轨迹动画的函数
-frames:定义一个动画帧的序列,确定动画运行的帧数,可以作为参数传递至func中用于更新轨迹
-init_func:绘制初始图像界面,主要确定坐标区间范围
-interval:每隔多长时间显示一帧画面
-repeat:是否重复动画
func参数
传入frames用于更新轨迹的坐标数据
提前定义x_data,y_data列表用于存储轨迹
使用frames,利用append函数计算更新x_data,y_data(或者是从构建好的轨迹列表中作为索引取出相应的坐标)
轨迹line
plt.plot()将返回图线对象
line, = plt.plot(),这里使用line加逗号解包,因为返回值不只图线对象
在func函数中更新或取出x_data,y_data中的值后,使用line.set_data(x_data,y_data)更新图线对象,最后func函数返回line对象
frames
frames确定帧数,可以使用np.linspace()函数或range()函数定义
init_func()
用于确定初始动画图像范围的函数,使用plt.subplots()可以返回figure对象以及axis对象。
使用其中的axis对象,设置动画的显示范围ax.set_xlim(),ax.set_ylim()
ani.save(文件名/路径)
该函数最后可以用来保存动画,可以保存为mp4格式/gif文件(此处的ani为使用animation.FuncAnimation()返回的动画对象)
ani.save('ani_1.mp4', writer='ffmpeg')