python制作gif动图_怎样用Python制作好玩的GIF动图
原标题:怎样用Python制作好玩的GIF动图
作者: 景略集智
https://jizhi.im/blog/post/pytogif
程序员共读整理发布,转载请联系作者获得授权
之前我们分享过用Python进行可视化的9种常见方式。其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表。
假如电脑上没有安装ImageMagick,先去这里按照自己的电脑系统下载对应版本,如果我们想用matplotlib的save方法渲染GIF动图,就需要安装ImageMagick。
下图是我们制作的一个动图示例:
有两点需要注意: 图表中的散点不会动,会动的是直线。 X轴标题每一帧都在变化。
下面是我们制作上面GIF图的代码:
import sysimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimationfig, ax = plt.subplots()fig.set_tight_layout(True)# 询问图形在屏幕上的大小和DPI(每英寸点数)# 注意当把图形保存为文件时,需要为此单独再提供一个DPIprint('fig size: {0} DPI, size in inches {1}'.format( fig.get_dpi(), fig.get_size_inches()))# 绘制一个保持不变(不会被重新绘制)的散点图以及初始直线x = np.arange(0, 20, 0.1)ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))line, = ax.plot(x, x - 5, 'r-', linewidth=2)def update(i): label = 'timestep {0}'.format(i) print(label)# 更新直线和轴(用一个新X轴标签) # 以元组形式返回这一帧需要重新绘制的物体 line.set_ydata(x - 5 + i) ax.set_xlabel(label) return line, axif __name__ == '__main__': # 会为每一帧调用Update函数 # 这里FunAnimation设置一个10帧动画,每帧间隔200ms anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200) if len(sys.argv) > 1 and sys.argv[1] == 'save': anim.save('line.gif', dpi=80, writer='imagemagick') else: # Plt.show()会一直循环动画 plt.show()
如果你想换个再酷炫点的主题,可以用seaborn库,只需添加:
import seaborn
那么就会得到下面这张GIF图:
稍微提醒一下:虽然我们这里的GIF图只有10帧,图形内容也很简单,但每一帧仍有160k左右。因为GIF动图不使用跨帧压缩,所以这就让帧比较长的GIF图变得很大。将帧数尽量减少,并且让每一帧的图像再小一点(通过在matplotlib中调整图形大小或DPI)能或多或少有助于缓解这个问题。
参考资料:drawing-animated-gifs-with-matplotlib/返回搜狐,查看更多
责任编辑:
python制作gif动图_怎样用Python制作好玩的GIF动图相关推荐
- matlab箱形图_使用javascript可视化世界幸福来构建箱形图
matlab箱形图 Data visualization is an important and sometimes undervalued tool in a data scientist's to ...
- 怎么用python读取excel图_如何用Python读取Excel中图片?
公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...
- python可以制作游戏脚本吗_如何用python制作游戏脚本?
对于游戏编程来说,使用脚本语言可以快速地开发游戏逻辑,节省开发新型自定义语言的时间和开销,并且脚本语言通常要比编程者创造的语言更加的强大.小伙伴们学习python有一段时间了,有没有发现python语 ...
- 学python还是java贴吧_是学python还是java?一张图告诉你!
物联网硬件开发 - 零基础学习电子产品设计 - 创客学院直播室www.makeru.com.cn Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷 ...
- pyecharts运行了但是没有图_新版pyecharts,Python可视化so easy and powerful !
作者:chenjiandongx 一个执迷于写 bug 的程序员 pyecharts V1.0.0 版本正式发布啦! What's New in pyecharts V1 pyecharts 经过了半 ...
- python word模板 图_科学网—Python绘制可插入Word的高清矢量图(SVG转EMF) - 任晓东的博文...
Python具有强大的绘图功能.在科学论文中通常需要矢量图,而且如果能方便的插入到word中更好.Python中自带的绘图库matplotlib可以将图保存成svg格式,但是我通常喜欢使用emf的矢量 ...
- python课程思维导图_零基础Python学习思维导图,记得收藏
原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...
- python程序员专用壁纸_神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏!...
原标题:神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏! 现在很多人学编程都把Python作为入门语言,其实这是个很不错的选择,那么你知道新手如何学Python吗?小编给大家分 ...
- python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...
说明:本文系交通攻城狮原创文章,如需转载请私信联系,侵权必究. 2020,第 30 期,编程笔记 建议直接阅读精编版:如何利用 Python 绘制酷炫的 车辆轨迹 - 速度时空图?三维数据用二维图像呈 ...
最新文章
- python输入完怎么运行-如何在服务器上跑python程序
- “后 PC”时代,应用为王
- beautiful sentences
- 洛谷P3205合唱队——区间DP
- RColorBrewer | R语言中的配色方法汇总(Ⅰ)
- vspython版本控制_python使用git进行版本控制1
- 新品Demo —— ZStack CMP多云管理平台
- MySQL中多表的连接
- 计算机主机前后,Win10电脑主机前面的耳机插口没声音怎么办?前置面板插孔没声音...
- web前端开发常用工具有哪些?
- Wordpress世界最牛?做网站用国内cms建站系统才是正道
- 题解 JZOJ 1354.土地购买
- 主页弹出2345.html,ie首页被篡改 IE主页被2345篡改怎么办
- Dynamic CRM(IFD)登陆超时时间查看及修改
- BZOJ2818 Gcd
- c# MODBUS协议源码 上/下位机源码烧写Flash工具
- 全国计算机二级考c考点,2019年全国计算机二级C语言考试考点解析(1)
- 为何一个简单的测试类H5却要花费我2天时间才完成?
- 崔老哥python scrapy爬虫框架入门
- OFD文件怎么打开?OFD免费转PDF?