使用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中绑定与未绑定的类方法用法分析
Apr 29 Python
python 类详解及简单实例
Mar 24 Python
Python内置模块turtle绘图详解
Dec 09 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
Python中函数的返回值示例浅析
Aug 28 Python
Pytorch之保存读取模型实例
Dec 30 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
Python函数调用追踪实现代码
Nov 27 Python
变长双向rnn的正确使用姿势教学
May 31 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
php多线程并发实现方法
2016/09/30 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
Vue响应式原理详解
2017/04/18 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
什么是python的列表推导式
2020/05/26 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
我爱读书演讲稿
2014/05/07 职场文书
测绘工程专业求职信
2014/07/15 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript
一文搞懂python异常处理、模块与包
2021/06/26 Python