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中pip安装非PyPI官网第三方库的方法
Jun 02 Python
Python3 queue队列模块详细介绍
Jan 05 Python
基于Django与ajax之间的json传输方法
May 29 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
python中HTMLParser模块知识点总结
Jan 25 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 Python
Python 读取千万级数据自动写入 MySQL 数据库
Jun 28 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
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
python 图片验证码代码分享
2012/07/04 Python
python样条插值的实现代码
2018/12/17 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
软件配置管理有什么好处
2015/04/15 面试题
留学自荐信
2013/10/10 职场文书
初中美术教学反思
2014/01/29 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
大学生见习总结报告
2015/06/24 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA