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的Django框架中创建语言文件
Jul 27 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
解决pycharm中导入自己写的.py函数出错问题
Feb 12 Python
python实现拼图小游戏
Feb 22 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
Python爬虫爬取百度搜索内容代码实例
Jun 05 Python
python3中apply函数和lambda函数的使用详解
Feb 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
php define的第二个参数使用方法
2013/11/04 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
JS跨域代码片段
2012/08/30 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
python的常见命令注入威胁
2013/02/18 Python
python读写ini文件示例(python读写文件)
2014/03/25 Python
python实现验证码识别功能
2018/06/07 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
非常详细的C#面试题集
2016/07/13 面试题
函授本科自我鉴定
2013/11/03 职场文书
蔬菜基地的创业计划书
2014/01/06 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
顶岗实习计划书
2015/01/16 职场文书
幼儿园感谢信
2015/01/21 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python