有两点需要注意: 图表中的散点不会动,会动的是直线。 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制作3d动图_怎样用Python制作好玩的GIF动图相关推荐

  1. python实现3d人物建模_放心的python实现3d人物建模容易学吗?,zbrush不规则金属硬边...

    湖南知了教育科技有限公司是一家以用心做教育为宗旨的互联网教育机构,让所有想学习的人获得蜕变,成为一家极具有口碑的教育企业,为社会的进步和发展做贡献,既为经师,更为人师.以身传道,用心授业.企业总部坐落 ...

  2. python绘制3d动态模型_怎么用python把*.obj文件里面的3D模型特征提取出来?

    1,去官网hge.net/下载Assimp放到centos7下,并解压 2,仔细阅读INSTALL文件 3,cmake CMakeLists.txt -G 'Unix Makefiles' 4,mak ...

  3. matlab箱形图_使用javascript可视化世界幸福来构建箱形图

    matlab箱形图 Data visualization is an important and sometimes undervalued tool in a data scientist's to ...

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

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

  5. 怎么用python读取excel图_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  6. python可以制作游戏脚本吗_如何用python制作游戏脚本?

    对于游戏编程来说,使用脚本语言可以快速地开发游戏逻辑,节省开发新型自定义语言的时间和开销,并且脚本语言通常要比编程者创造的语言更加的强大.小伙伴们学习python有一段时间了,有没有发现python语 ...

  7. 学python还是java贴吧_是学python还是java?一张图告诉你!

    物联网硬件开发 - 零基础学习电子产品设计 - 创客学院直播室​www.makeru.com.cn Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷 ...

  8. pyecharts运行了但是没有图_新版pyecharts,Python可视化so easy and powerful !

    作者:chenjiandongx 一个执迷于写 bug 的程序员 pyecharts V1.0.0 版本正式发布啦! What's New in pyecharts V1 pyecharts 经过了半 ...

  9. python word模板 图_科学网—Python绘制可插入Word的高清矢量图(SVG转EMF) - 任晓东的博文...

    Python具有强大的绘图功能.在科学论文中通常需要矢量图,而且如果能方便的插入到word中更好.Python中自带的绘图库matplotlib可以将图保存成svg格式,但是我通常喜欢使用emf的矢量 ...

  10. python课程思维导图_零基础Python学习思维导图,记得收藏

    原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...

最新文章

  1. Mac 下通过Keytool生成签名证书
  2. 反射中使用 BindingFlags.IgnoreCase
  3. win7怎么运行linux,win7系统运行linux shell脚本的操作方法
  4. 09 | 队列:队列在线程池等有限资源池中的应用
  5. c# 小程序支付后台示例_C中的#if指令示例| C预处理程序
  6. 二叉树的字符图形显示程序_每个程序员都必须知道的8种通用数据结构
  7. SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) ——《Using SQlite》读书笔记
  8. python3.7源码剖析——python对象
  9. c语言对整形indexing,C语言运算符另类分类法
  10. chrome浏览器小恐龙自动跑
  11. [ACM]【Dijkstra/DP】Atcoder 164 Two Currencies
  12. 实验三+126+黄晟
  13. Google hack语法
  14. 以 2、3……16 进制输出一无符号整型数
  15. 龙蜥降世,神龙升级,灵杰亮相,阿里云再出神器
  16. MySQL(六)——存储过程和存储函数
  17. 【C++复习总结回顾】—— 【五】数组与指针
  18. python判断电话号码是否合理_Python正则匹配判断手机号是否合法的方法
  19. 【Matlab】评估网络节点重要性
  20. 使用colab训练faster-rcnn pytorch版(代码来源:霹雳吧啦Wz)

热门文章

  1. web网页常见特效3——轮播图
  2. console接口配置登录密码
  3. 千呼万唤始出来—2019 FLAG
  4. Window 打开新窗口的几种方式 window.location.href、window.open、window.showModalDialog
  5. text生成pdf之ctexwineditmiktexgbk2uni的安装使用方法
  6. [车联网安全自学篇] 关于IoT安全该如何入门?你必须知道的那些事「3万字详解」
  7. 手变小是怎么回事_手指小太阳越来越小是怎么回事
  8. 网页加载慢,你知道几种原因?
  9. 合唱队形java_动态规划之合唱队形问题(最长递增子序列变形)
  10. 22年QQ号被盗,好友协助验证却申诉无效