使用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中subprocess的简单使用示例
Jul 28 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Python中itertools的用法详解
Feb 07 Python
Python 定义只读属性的实现方式
Mar 05 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
cache_lite试用
2007/02/14 PHP
How do I change MySQL timezone?
2008/03/26 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
js一组验证函数
2008/12/20 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
webpack+vue.js实现组件化详解
2016/10/12 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
python中input()与raw_input()的区别分析
2016/02/27 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python中if及if-else如何使用
2020/06/02 Python
python如何设置静态变量
2020/09/07 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
财政局长自荐信范文
2013/12/22 职场文书
幼儿园家长寄语
2014/04/02 职场文书
2014年店长工作总结
2014/11/17 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
Python机器学习之基础概述
2021/05/19 Python
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
Nginx的gzip相关介绍
2022/05/11 Servers
Redis+AOP+自定义注解实现限流
2022/06/28 Redis