使用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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
基于hashlib模块--加密(详解)
Jun 21 Python
python实现微信远程控制电脑
Feb 22 Python
Python实现的计算器功能示例
Apr 26 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
django框架ModelForm组件用法详解
Dec 11 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
如何通过命令行进入python
Jul 06 Python
利用Python实现Json序列化库的方法步骤
Sep 09 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数组中的重复值的实现代码
2011/07/17 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
基于JavaScript实现选项卡效果
2017/07/21 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
python实现Adapter模式实例代码
2018/02/09 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
露营世界:Camping World
2017/02/02 全球购物
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
中国入世承诺
2014/04/01 职场文书
2016教师节感恩话语
2015/12/09 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
简单了解 MySQL 中相关的锁
2021/05/25 MySQL