使用numpngw和matplotlib生成png动画的示例代码

 更新时间:2021年01月24日 11:54:42   作者:mighty13  
这篇文章主要介绍了使用numpngw和matplotlib生成png动画的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在matplotlib官网看到了第三方库numpngw的简介,利用该库作为插件可以辅助matplotlib生成png动画。

numpngw概述

numpngw库可生成PNG静态图像和PNG动画。

  • 通过write_png函数可以将 numpy保存为PNG 文件。
  • 通过 write_apng 函数可以将数组序列保存为 PNG 动画(APNG)文件 。
  • 通过AnimatedPNGWriter类可以将Matplotlib 保存为PNG动画文件。

numpngw库的依赖包是numpy和setuptools。

使用numpngw和matplotlib生成png动画

numpngw+matplotlib实现png动画

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.animation as animation
from numpngw import AnimatedPNGWriter

t = np.linspace(0, 6, 100)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
data=[i for i in zip(x,y)]

def plot_love(data):
  x, y = data
  plt.scatter(x, y, 60, c="r", alpha=0.7, marker=r"$\heartsuit$")
fig=plt.figure(figsize=(5, 3), dpi=100)
plt.axis("off")

writer = AnimatedPNGWriter(fps=12)
animator = animation.FuncAnimation(fig, plot_love, frames=data)
animator.save("love.png", writer=writer)

使用matplotlib和pillow实现gif动画

from matplotlib import pyplot as plt
import matplotlib.animation as animation
import numpy as np

t = np.linspace(0, 6, 100)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
data=[i for i in zip(x,y)]

def plot_love(data):
  x, y = data
  plt.scatter(x, y, 60, c="r", alpha=0.7, marker=r"$\heartsuit$")

fig=plt.figure(figsize=(5, 3), dpi=100)
plt.axis("off")
animator = animation.FuncAnimation(fig, plot_love, frames=data, interval=80)
animator.save("love.gif", writer='pillow')

关键代码解读

# 导入AnimatedPNGWriter
from numpngw import AnimatedPNGWriter

# 初始化AnimatedPNGWriter
writer = AnimatedPNGWriter(fps=12)
# 将save函数中的writer参数设为AnimatedPNGWriter实例
animator.save("love.png", writer=writer)

通过对比可知,使用 numpngw+matplotlib生成png动画方式非常简单,只用初始化AnimatedPNGWriter,在save函数中指定writer即可。

到此这篇关于使用numpngw和matplotlib生成png动画的示例代码的文章就介绍到这了,更多相关numpngw和matplotlib生成png动画内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 产生token及token验证的方法

    python 产生token及token验证的方法

    今天小编就为大家分享一篇python 产生token及token验证的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python教程之进程和线程

    python教程之进程和线程

    这篇文章主要为大家介绍了python进程和线程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Python使用Matplotlib绘制甘特图的实践

    Python使用Matplotlib绘制甘特图的实践

    甘特图已经发展成项目规划和跟踪的必备工具,本文主要介绍了Python使用Matplotlib绘制甘特图的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 如何运用python读写CSV文件

    如何运用python读写CSV文件

    本文通过讲解使用基础Python代码来读写和处理CSV文件,点进来的小伙伴一起来学习吧
    2021-08-08
  • Python 20行简单实现有道在线翻译的详解

    Python 20行简单实现有道在线翻译的详解

    这篇文章主要介绍了Python实现有道在线翻译的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • python轮询机制控制led实例

    python轮询机制控制led实例

    这篇文章主要介绍了python轮询机制控制led实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python3 selenium 实现QQ群接龙自动化功能

    Python3 selenium 实现QQ群接龙自动化功能

    这篇文章主要介绍了Python3 selenium 实现QQ群接龙自动化功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 25个值得收藏的Python文本处理案例

    25个值得收藏的Python文本处理案例

    这篇文章主要给大家分享的是25个值得收藏的Python文本处理案例。Python 处理文本是一项非常常见的功能,本文整理了多种文本提取及NLP相关的案例,还是非常有收藏价值的,文章很长,可以收藏起来,总会用到的
    2022-02-02
  • python关闭print输出信息详情

    python关闭print输出信息详情

    这篇文章主要介绍了python关闭print输出信息详情,当我们遇到需要关闭print输出信息的情况,我们可以通过控制sys.stdout来实现print输出的开关,下面文章就用一个简单的例子来实现,需要的小伙伴可以参考一下
    2022-02-02
  • Python中的查找算法代码实例

    Python中的查找算法代码实例

    这篇文章主要介绍了Python中的查找算法代码实例,算法是解决一系列问题的清晰指令,也就是,能对一定规范的输入,在有限的时间内获得所要求的输出,简单来说,算法就是解决一个问题的具体方法和步骤,算法是程序的灵魂,需要的朋友可以参考下
    2023-07-07

最新评论