原标题:怎样用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动图相关推荐

  1. python 制作gif-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  2. python制作gif动图_怎样用Python制作好玩的GIF动图

    原标题:怎样用Python制作好玩的GIF动图 作者: 景略集智 https://jizhi.im/blog/post/pytogif 程序员共读整理发布,转载请联系作者获得授权 之前我们分享过用Py ...

  3. 制作gif动图python_利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  4. python画动图-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  5. pythongif字符动图,利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  6. python画动态图-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  7. 一文读懂Python版的十大经典排序算法(附动图演示)

    来源:大数据DT 本文约5200字,建议阅读10分钟 排序算法是<数据结构与算法>中最基本的算法之一.本文介绍10种常见的内部排序算法,及如何用Python实现. 排序算法可以分为内部排序 ...

  8. 手机如何制作gif?简单三步在线合成gif动图

    如何通过使用手机来制作gif动图呢?只需要使用[GIF中文网],上传jpg.png格式的图片就能够快速完成在线gif制作(https://www.gif.cn/)的操作,非常简单省时省力,无需下载软件 ...

  9. 如何制作动态拼图?教你如何在线拼接动图

    相信大家都看过很多拼图效果的图片,将多张图片拼接在一张图片中,做成带有展示效果的拼图.那么,当我们想要将gif动图制作成有拼接效果的gif拼图时,应该怎么办呢?下面,小编为大家分享一款**动态图片拼接 ...

最新文章

  1. python线程实现人脸识别_OpenCV/Python:用于实时人脸识别的多线程技术
  2. Spring测试框架springContextTest
  3. 对matlab中colormap的解释及fill、imshow的用法说明
  4. 专题一:预处理数据(使用sklearn-preprocessing)
  5. VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
  6. Go 语言框架 Gin 练习1
  7. 系统需求分析文档需要考虑的问题
  8. Mircosoft 正式把Windows Mobile改名为Windows Phone,你会因此而购买Windows Phone吗?
  9. Analyzer报表结果行
  10. VC++:如何将程序最小化到托盘 [转]
  11. T-SQL多个小计+合计,分类汇总
  12. [SoapUI]怎样保存response到本地文件夹
  13. java使用itext合并pdf文件
  14. iTextSharp 使用详解
  15. java excel转pdf 的实现_JAVA语言实现excel转pdf文件
  16. 微信小程序之滑动果冻效果
  17. 收藏CSDN上一篇文章--勉励自己
  18. 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第五篇 LCD+触摸屏移植
  19. 2020年中国废旧纺织品回收行业市场现状分析,高值化再生技术持续推进「图」
  20. 【Alpha】Scrum Meeting 5

热门文章

  1. PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片...
  2. spring配置文件中分别使用多个properties文件
  3. hdu 5167 bfs
  4. solaris UFS文件系统 要点
  5. 如何使Layouts里的页面应用站点母板页
  6. 14-----块级标签和行内元素
  7. modelsim do文件仿真
  8. wget镜像网站并且下载到指定目录 2012-06-20 19:40:56
  9. 我国农村经济发展战略
  10. 6月16号=》156页-160页