资讯专栏INFORMATION COLUMN

极简教程: 使用 matplotlib 绘制 GIF 动图

fredshare / 2347人阅读

摘要:如果你保存成的时候,你需要提供绘制一个散点图不会重绘,和初始的线更新线和坐标轴标签返回要重绘的对象将会在每一帧执行一次帧数每帧的间隔如果第一参数是,教会保存成重点保存的尺寸使用的渲染器,我们制定成否则直接展示

开门见山,直接上例子:

有如下特点:

散点图的部分是不变的;线是移动的

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, ax

if __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: 使用的渲染器,我们制定成 imagemagick
        anim.save("line.gif", dpi=80, writer="imagemagick")
    else:
        # 否则直接展示
        plt.show()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43183.html

相关文章

  • 数据可视化之美 -- 以Matlab、Python为工具

    摘要:在我们科研工作中,将数据完美展现出来尤为重要。数据可视化是以数据为视角,探索世界。我们真正想要的是数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界。 ...

    why_rookie 评论0 收藏0
  • Matplotlib 库生成动画图表

    摘要:相对于静态图表,人类总是容易被动画和交互式图表所吸引。可以使用轻松生成图表直方图功率谱,条形图,错误图表,散点图等。然而,也有一些方面落后于同类的库。动画使用一组固定的对象。稍后将用数据对行对象进行填充。现在用将它们转换为动画。 翻译:疯狂的技术宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...

    call_me_R 评论0 收藏0
  • Matplotlib 库生成动画图表

    摘要:相对于静态图表,人类总是容易被动画和交互式图表所吸引。可以使用轻松生成图表直方图功率谱,条形图,错误图表,散点图等。然而,也有一些方面落后于同类的库。动画使用一组固定的对象。稍后将用数据对行对象进行填充。现在用将它们转换为动画。 翻译:疯狂的技术宅https://towardsdatascience.co... showImg(https://segmentfault.com/img...

    不知名网友 评论0 收藏0
  • Python绘制数据动态图的方法详解

      小编写这篇文章的一个主要目的,主要是给大家去做一个介绍,介绍的内容是,利用Python这门语言,去绘制相关的数据动态图表,那么,具体的绘制方法是什么呢?下面小编就给大家详细的解答。  数据动态图怎么做,效果图,  多子图联动竞赛图  安装  pipinstallpandas_alive   #或者   condainstallpandas_alive-cconda-forge   玩起来  支...

    89542767 评论0 收藏0
  • 用python玩微信(聊天机器人,好友信息统计)

    摘要:用实现微信好友性别及位置信息统计这里使用的库开发。使用图灵机器人自动与指定好友聊天让室友帮忙测试发现发送表情发送文字还能回应,但是发送图片可能不会回复,猜应该是我们申请的图灵机器人是最初级的没有加图片识别功能。 1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发。如果你想对wxpy有更深的了解请查看:wxpy...

    Youngs 评论0 收藏0

发表评论

0条评论

fredshare

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<