开门见山,直接上例子:

有如下特点:

  • 散点图的部分是不变的;线是移动的
  • X 轴标题每一祯改变一次

DEMO 的环境

  • Ubuntu 18.04.2 LTS
  • conda 4.6.3
  • Python 3.7.2

创建 virtualenv

ichexw at n3xt-Studio -> conda create --name matplot-gif python=3.7
ichexw at n3xt-Studio -> conda activate matplot-gif

安装必要的依赖

安装 matplotlib

(matplotlib-gif) ichexw at n3xt-Studio -> conda install matplotlib

安装 imagemagick

(matplotlib-gif) ichexw at n3xt-Studio -> conda install -c conda-forge imagemagick

代码实现

import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation# 创建图层和布局
fig, ax = plt.subplots()
fig.set_tight_layout(True)# 查看图标的尺寸。如果你保存成 gif 的时候,你需要提供 DPI
print('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)# 更新线和坐标轴标签line.set_ydata(x - 5 + i)ax.set_xlabel(label)# 返回要重绘的对象return line, axif __name__ == '__main__':# FunAnimation 将会在每一帧执行一次 update# frames: 帧数# interval: 每帧的间隔anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)if len(sys.argv) > 1 and sys.argv[1] == 'save':# 如果第一参数是 save,教会保存成 gif# **重点**# dpi: 保存的尺寸# writer: 使用的渲染器,我们制定成 imagemagickanim.save('line.gif', dpi=80, writer='imagemagick')else:# 否则直接展示plt.show()

极简教程: 使用 matplotlib 绘制 GIF 动图相关推荐

  1. python matplotlib绘制gif动图以及保存

    python matplotlib绘制gif动图以及保存 标签: python matplotlib 谨以此文纪念我两天来的悲剧 昨天我用lstm拟合sin曲线,看到别人画的做的动图很好看,并且还能保 ...

  2. 【一天一门编程语言】Matlab 语言程序设计极简教程

    Matlab 语言程序设计极简教程 用 markdown 格式输出答案. 不少于3000字.细分到2级目录. 文章目录 Matlab 语言程序设计极简教程 简介 Matlab 工作空间 Matlab ...

  3. 《Kotlin极简教程》第三章 Kotlin基本数据类型

    正式上架:<Kotlin极简教程>Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item ...

  4. 负载分析及问题排查极简教程

    作者 | Hollis ,来自 | Hollis 平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load.cpu.mem.qps.rt等.每个指标都有其独特的意义,很多时候在线上出现问题时 ...

  5. 高效sql性能优化极简教程

    一,sql性能优化基础方法论 对于功能,我们可能知道必须改进什么:但对于性能问题,有时我们可能无从下手.其实,任何计算机应用系统最终队可以归结为: cpu消耗 内存使用 对磁盘,网络或其他I/O设备的 ...

  6. session一致性架构设计极简教程

    一,缘起 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文. Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建se ...

  7. 写一个操作系统有多难?自制 os 极简教程

    不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统.我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识.不论是为了满足程序员们自带的成就感,还是为 ...

  8. 《Groovy极简教程》第12章 Groovy的JSON包

    <Groovy极简教程>第12章 Groovy的JSON包 Groovy自带了转换JSON的功能,相关类都在groovy.json包下.本文参考自Groovy文档 Parsing and ...

  9. Kotlin极简教程

    目录 Kotlin极简教程 前言 视频教程 Kotlin 系统入门到进阶 Kotlin 从入门到放弃 Kotlin 从零基础到进阶 第1章 Kotlin简介 第2章 快速开始:HelloWorld 第 ...

最新文章

  1. java安卓开发工具_推荐几个非常实用的Android开发工具
  2. Java中的Iterable与Iterator详解
  3. .NET设计模式(15):结构型模式专题总结
  4. 不同版本Eclipse对JDK版本要求
  5. 分析模式 - 度量与测绘
  6. 微软颜龄Windows Phone版开发小记
  7. linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
  8. 李飞飞:一站式全链路数据管理与服务成为产业布局重点
  9. .net core精彩实例分享 -- 字符串处理
  10. 如果有5杯水却来了6个领导,你该怎么办?
  11. 远程打开其他电脑的computer management
  12. mysql管理命令 java_Mysql常用命令及操作
  13. RedHat as4 u2下的oracle9.2.0.4安装
  14. 深度学习实时表情识别
  15. linux怎么刷机教程,刷机教程
  16. 密立根油滴实验实验数据处理
  17. 1162开放英语4 (2)
  18. Python实现散点图和散点图矩阵的绘制
  19. 为程序添加windows注册表
  20. c语言 feof 死循环,请教:为什么我用while(!feof(fp))时会出现无限循环????

热门文章

  1. 通过CMOS设置定时开机
  2. RAILS 学习日记 --扩展
  3. WebKit Loader模块介绍
  4. MVC简捷调用EasyUI的datagrid
  5. Java集合—Deque Stack
  6. c++学习笔记之继承和多态
  7. 暂时关闭 windows 病毒防护
  8. SQLServer删除登录帐户
  9. np.identity()
  10. mybatis配置问题