欢迎大家关注 集智专栏

之前我们分享过用 Python 进行可视化的 9 种常见方式,大家还记得吗:

景略集智:超实用!用Python进行数据可视化的9种常见方法!​zhuanlan.zhihu.com

其实还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用 Python 和 matplotlib 制作 GIF 图表。

假如电脑上没有安装ImageMagick,先去这里(https://www.imagemagick.org/script/download.php)按照自己的电脑系统下载对应版本,如果我们想用matplotlib的save方法渲染GIF动图,就需要安装ImageMagick。

下图是我们制作的一个动图示例:

有两点需要注意:

图表中的散点不会动,会动的是直线。

X轴标题每一帧都在变化。

下面是我们制作上面GIF图的代码:

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)

# 询问图形在屏幕上的大小和DPI(每英寸点数)

# 注意当把图形保存为文件时,需要为此单独再提供一个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)

# 更新直线和轴(用一个新X轴标签)

# 以元组形式返回这一帧需要重新绘制的物体

line.set_ydata(x - 5 + i)

ax.set_xlabel(label)

return line, ax

if __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)能或多或少有助于缓解这个问题。

欢迎关注我们的微博:@景略集智

python制作流动图_可视化也能秀,教你用Python制作GIF动图相关推荐

  1. python 知乎美女_知乎大神教你用Python爬取网站美女图,附代码!

    都知道Python的抓取功能强大,可以帮我们从海量的数据中爬取所需要的进行分析.下面,就给大家分享知乎大神怎么用Python爬取高颜值美女! 1.数据源 知乎话题『美女』下所有问题中回答所出现的图片 ...

  2. python内存池机制_看过来啦!教你用Python进行内存管理

    原标题:看过来啦!教你用Python进行内存管理 现在学Python的小伙伴有很多啦!Python语言的发展前景也是有目共睹.小助手今天为大家带来了Python中内存管理的方法,一起来学习一下吧~ P ...

  3. python实现秒杀系统_双十一买买买,教你用Python实现秒杀系统

    原标题:双十一买买买,教你用Python实现秒杀系统 简书博客地址: https://www.jianshu.com/u/8f4d80000566 架构搭建是重点,代码或语言实现较简单. 本篇用pyt ...

  4. python画k线图_一步一步教你用Python画出专业的K线图

    漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果.本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标: matplotlib是受MATL ...

  5. python绘制蜡烛图_一步一步教你用Python画出专业的K线图

    漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果.本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标: matplotlib是受MATL ...

  6. 用python绘制股票图_一步一步教你用Python画出专业的K线图

    漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果.本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标: matplotlib是受MATL ...

  7. python中国地图程序设计_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  8. python撩妹技能_干货必看 | 手把手教你用Python撩妹

    今天我们不讲专业知识,我们来讲讲,如何用Python做个撩妹小程序,考虑到有些小白没有深入的学习过Python,我给大家整理个初阶小白也可以做出来的程序,画颗爱心. 以下是代码: 1 from tur ...

  9. 用python写秒杀程序_马上双十一,教你用Python实现秒杀系统

    简书博客地址: https://www.jianshu.com/u/8f4d80000566 大家好,我是老表 阅读文本大概需要 10 分钟 坚持学习很难,养成学习习惯更难 架构搭建是重点,代码或语言 ...

最新文章

  1. linux ubuntu gcc编译 fatal error: bits/libc-header-start.h 错误解决
  2. QT-X11-3.1.2.tar.bz2的使用
  3. poj2186 求有向图G中所有点都能到达的点的数量
  4. 只知道ajax?你已经out了
  5. explicit_defaults_for_timestamp参数的专题报告
  6. stotybord如何添加子视图_Revit软件技巧合集(建筑构件、视图处理、建筑表现、高级技巧)...
  7. MySQL建表字段长度的限制、汉字和字母占字节数
  8. 运行android程序时显示stop,Android系统.应用程序关闭时WorkManager是否正在运行?
  9. 合租房资金管理系统--会议纪要
  10. 1017. A除以B (20)-PAT乙级真题
  11. CSDN博客利用HTML标签制作美观表格
  12. 不能访问共享-The network location cannot be reached
  13. glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
  14. 程序员的超强本地构建工具
  15. 胡因梦-生命的不可思议
  16. 4月20日第壹简报,星期四,农历三月初一,谷雨
  17. JAVA服务器端发送邮件问题:Could not connect to SMTP host: smtp.qq.com, port: 465
  18. poe交换机供电过程中会有哪些风险?
  19. Git 学习笔记——程序员篇
  20. java-net-php-python-java智能会议管理系统计算机毕业设计程序

热门文章

  1. 抖音年赚千万主播多是小学初中文化
  2. 怎样选择性价比高的主机服务器?
  3. Windows Terminal安装PowerLine教程
  4. 华为鸿蒙系统与苹果IOS系统,华为鸿蒙与苹果iOS的两极之路
  5. 【计算机组成原理】原码 反码 补码 移码的转换
  6. dwg格式的计算机图,【2人回答】电脑上得CADDWG文件图标如何变成这样?-3D溜溜网...
  7. 究竟该入手iPad2018、pro还是mini4
  8. maven安装目录分析
  9. 短视频剪辑素材在哪里找?
  10. js保留小数点后几位小数正则