使用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自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
python3序列化与反序列化用法实例
May 26 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
学生信息管理系统python版
Oct 17 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Django实现列表页商品数据返回教程
Apr 03 Python
Python 发送邮件方法总结
Aug 10 Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 Python
python之json文件转xml文件案例讲解
Aug 07 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/04/09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php中namespace及use用法分析
2016/12/06 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
Python实现的检测网站挂马程序
2014/11/30 Python
Python常用库推荐
2016/12/04 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
python函数定义和调用过程详解
2020/02/09 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
在职员工证明书
2014/09/19 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
导游词之河北邯郸
2019/09/12 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers