使用numpngw和matplotlib生成png动画的示例代码
在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动画
importnumpyasnp frommatplotlibimportpyplotasplt importmatplotlib.animationasanimation fromnumpngwimportAnimatedPNGWriter 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=[iforiinzip(x,y)] defplot_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动画
frommatplotlibimportpyplotasplt importmatplotlib.animationasanimation importnumpyasnp 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=[iforiinzip(x,y)] defplot_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 fromnumpngwimportAnimatedPNGWriter #初始化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动画内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!