参考https://blog.csdn.net/suzyu12345/article/details/78338091
函数from matplotlib.animation import FuncAnimation
anim = animation.funcanimation(fig, animate, init_func=init, frames=100, interval=20, blit=true)
主要参数:fig, animat, frames, interval fig:画布 animat:更新函数,参数为frames的迭代 frames:总共多少帧 interval:每帧间的间隔,单位为毫秒,以30Hz为例,interval就为33
更新函数
def animate(i):
data = [[x,y] for x,y in zip(x1,y1)]
sca1.set_offsets(data1)
label = 'timestep {0}'.format(i)
ax1.set_xlabel(label)
return sca1
以更新散点图为例,散点图的重置函数为set_offsets(data),data格式类似[[x1,x2,x3], [y1,y2,y3]] 由于我们的x,y都是准备好的,可以直接读取
将图像设置为背景
1、读入图像 img = plt.imread('test.png') 2、将图像设置为背景(即显示图像) ax.imshow(img) 3、画散点图
保存(gif or mp4)
anim.save('a.gif',writer='pillow',fps=2) anim.save('a.mp4',writer='ffmpeg',fps=30) pillow是matplotlib自带的,而ffmpeg需要安装
conda config --add channels conda-forge
conda install ffmpeg
fps是帧率,其实这里保存的时候就已经跟前面的interval 参数没什么关系了,interval 其实可以随便设置
|