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


Posted in Python onJanuary 24, 2021

在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 相关文章推荐
python 性能提升的几种方法
Jul 15 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
python实现数据写入excel表格
Mar 25 Python
python如何实现一个刷网页小程序
Nov 27 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
python3.x中安装web.py步骤方法
Jun 23 Python
Python Socket编程详解
Apr 25 Python
python运算符之与用户交互
Apr 13 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 #Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 24 #Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 #Python
python 图像增强算法实现详解
Jan 24 #Python
详解用 python-docx 创建浮动图片
Jan 24 #Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 #Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 #Python
You might like
PHP中MD5函数使用实例代码
2008/06/07 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
linux下编译安装memcached服务
2014/08/03 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
Python程序语言快速上手教程
2012/07/18 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python创建或生成列表的操作方法
2019/06/19 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
CSS3 边框效果
2019/11/04 HTML / CSS
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
媒矿安全生产承诺书
2014/05/23 职场文书
战友聚会策划方案
2014/06/13 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
学生评语集锦
2015/01/04 职场文书
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android