matplotlib模块数据可视化-动画

来源:互联网 发布:熊猫网络电视 编辑:程序博客网 时间:2024/06/05 01:51

1 动画说明

这里动画的主要原理就是帧动画,通过不停的刷新图形,由于人多视觉暂留效果,我们看到的就是在连续变化的图片,就是动画原理,可以通过修改interval参数来改变刷新间隔,也就是改变动画的执行速度。speed也可以,但是如果修改的范围太大,看起来动画不够精细,建议修改interval来实现动画速度修改。

2 源码及解释

import numpy as npimport matplotlib.pyplot as plt# 动画需要导入该模块from matplotlib import animation# 定义动画的速度,通过改变这个变量的值改变动画速度speed = 0.03fig, ax = plt.subplots()x = np.arange(0, 2*np.pi, 0.01)line, = ax.plot(x, np.sin(x))# 每次执行时的函数,def animate(i):    line.set_ydata(np.sin(x + i * speed))    return line,# 动画初始的方法def init():    line.set_ydata(np.sin(x))    return line,# fig : 执行动画的图像# func : 动画的执行函数# frames : 表示多少次动画为一个循环# init_func : 动画的初始位置# interval : 动画执行的间隔  不能为小数,小数动画就不执行了,不知道是不是我的姿势不对# blit : Mac设置为False,设置为True会报错,根据错误提示如下,可以使用'TKAgg'代替# matplotlib.animation.BackendError: The current backend is 'MacOSX'and may go into an infinite loop with blit turned on.  Either turn off blit or use an alternate backend, for example, like 'TKAgg', using the following prepended to your source code:ani = animation.FuncAnimation(fig=fig,func=animate,frames=int(2*np.pi/speed),init_func=init,interval=1,blit=False)# 查看帮助文档#help(ani.save)# 可以将动画以mp4格式保存下来,但首先要保证你已经安装了ffmpeg 或者mencoder# ani.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])plt.show()

3 效果图

通过修改speed的值或者修改动画方法中的interval的值来修改动画速度。由于博主不会制作gif,所以只能截一个静态图,其实真正的执行效果是看起来图片在向左移动。



说明:到这里matplotlib的一些常用功能就介绍完了,后续博主还会学习更多的matplotlib的高级技能,到时候会发博分享,大家可以关注我的博客,也可以在下面留言交流,共同学习,谢谢。

阅读全文
0 0
原创粉丝点击