使用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 相关文章推荐
Ubuntu下安装PyV8
Mar 13 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
利用Python破解斗地主残局详解
Jun 30 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
一篇文章了解Python中常见的序列化操作
Jun 20 Python
python异步编程 使用yield from过程解析
Sep 25 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
解决Django transaction进行事务管理踩过的坑
Apr 24 Python
Python 图片添加美颜效果
Apr 28 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
js的回调函数详解
2015/01/05 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
Python  Django 母版和继承解析
2019/08/09 Python
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
社区中秋节活动方案
2014/01/29 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
学生干部培训方案
2014/06/12 职场文书
挂职个人工作总结
2015/03/05 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript