使用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 正则式使用心得
May 07 Python
在Python中调用ggplot的三种方法
Apr 08 Python
Python基础语法(Python基础知识点)
Feb 28 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
Python带动态参数功能的sqlite工具类
May 26 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
python得到单词模式的示例
Oct 15 Python
python判断完全平方数的方法
Nov 13 Python
Python-split()函数实例用法讲解
Dec 18 Python
python 如何用terminal输入参数
May 25 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
PHP防盗链代码实例
2014/08/27 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
JSF界面控制层技术
2013/06/17 面试题
国际商务专业求职信
2014/07/15 职场文书
2014年租房协议书范本
2014/10/30 职场文书
辞职信如何写
2015/02/27 职场文书
离婚起诉状范本
2015/05/19 职场文书
单位工资证明范本
2015/06/12 职场文书
建房合同协议书
2016/03/21 职场文书
合同补充协议书
2016/03/24 职场文书
redis lua限流算法实现示例
2022/07/15 Redis