Python通过matplotlib绘制动画简单实例


Posted in Python onDecember 13, 2017

Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

matplotlib从1.1.0版本以后就开始支持绘制动画,具体使用可以参考官方帮助文档。下面是一个很基本的例子:

"""
A simple example of an animated plot
"""
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
# First set up the figure, the axis, and the plot element we want to animate
fig = plt.figure()
# create our line object which will be modified in the animation
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
# we simply plot an empty line: we'll add data to the line later
line, = ax.plot([], [], lw=2) 
# initialization function: plot the background of each frame
def init():
 line.set_data([], [])
 return line,
# animation function. This is called sequentially
# It takes a single parameter, the frame number i 
def animate(i):
 x = np.linspace(0, 2, 1000)
 y = np.sin(2 * np.pi * (x - 0.01 * i)) # update the data
 line.set_data(x, y)
 return line,
# Makes an animation by repeatedly calling a function func
# frames can be a generator, an iterable, or a number of frames.
# interval draws a new frame every interval milliseconds.
# blit=True means only re-draw the parts that have changed.
# 在这里设置一个200帧的动画,每帧之间间隔20毫秒
anim = animation.FuncAnimation(fig, animate, init_func=init,
        frames=200, interval=20, blit=True)
# save the animation as an mp4. This requires ffmpeg or mencoder to be
# installed. The extra_args ensure that the x264 codec is used, so that
# the video can be embedded in html5. You may need to adjust this for
# your system: for more information, see
# http://matplotlib.sourceforge.net/api/animation_api.html
anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])

plt.show() # plt.show() 会一直循环播放动画

结果:

Python通过matplotlib绘制动画简单实例

如果要将动画保存为mp4格式的视频文件,则需要先安装FFmpeg。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

在这里下载windows的版本:DownloadFFmpegforWindows,解压,然后将bin目录加入系统环境变量的路径中。如:C:\ProgramFiles\ffmpeg-3.2.2-win64-static\bin。然后测试是否配置OK:输入ffmpeg-version

Python通过matplotlib绘制动画简单实例

总结

以上就是本文关于Python通过matplotlib绘制动画简单实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python的lambda匿名函数的简单介绍
Apr 25 Python
python中使用smtplib和email模块发送邮件实例
Apr 22 Python
python字典键值对的添加和遍历方法
Sep 11 Python
JPype实现在python中调用JAVA的实例
Jul 19 Python
python实现发送邮件功能
Jul 22 Python
python安装scipy的方法步骤
Jun 26 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
python 19个值得学习的编程技巧
Aug 15 Python
python开发入门——set的使用
Sep 03 Python
Python中logging日志的四个等级和使用
Nov 17 Python
python开发实时可视化仪表盘的示例
May 07 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 #Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 #Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 #Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 #Python
python+pygame简单画板实现代码实例
Dec 13 #Python
Python实现简单的语音识别系统
Dec 13 #Python
关于反爬虫的一些简单总结
Dec 13 #Python
You might like
简单的页面缓冲技术
2006/10/09 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
Vuex简单入门
2017/04/19 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
Python生成验证码实例
2014/08/21 Python
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
python实现银行账户系统
2021/02/22 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
实习生自荐信范文分享
2013/11/27 职场文书
一年级数学教学反思
2014/02/01 职场文书
班级活动总结格式
2014/08/30 职场文书
道歉信怎么写
2015/05/12 职场文书
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
php解析非标准json、非规范json的方式实例
2022/05/10 PHP