使用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使用PyV8执行javascript代码示例分享
Dec 04 Python
在Python中使用异步Socket编程性能测试
Jun 25 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
对Python中9种生成新对象的方法总结
May 23 Python
python得到电脑的开机时间方法
Oct 15 Python
python 返回列表中某个值的索引方法
Nov 07 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
Python中关于浮点数的冷知识
Sep 22 Python
Python基于pip实现离线打包过程详解
May 15 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 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 从数据库提取二进制图片的处理代码
2009/09/09 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python Django 创建应用过程图示详解
2019/07/29 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python 表格打印代码实例解析
2019/10/12 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
Python中qutip用法示例详解
2020/10/02 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
自荐书格式
2013/12/01 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
爱情保证书大全
2014/04/29 职场文书
辅导员评语
2014/05/04 职场文书
实验室标语
2014/06/21 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
家长给老师的感谢信
2015/01/20 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
关于 Python json中load和loads区别
2021/11/07 Python