Matplotlib 输出gif文件

前面学习了输出MP4文件,这是非常有用的技术,因为可以发送给别人去观看,无论手机上,还是电脑上都可以查看。不过,要发布到网站上,就有点困难了,因为有一些网站不支持上传MP4文件,只支持GIF文件。像这样的需求,只能学习GIF文件生成技术,接着下来本文就告诉你怎么样来生成GIF文件。其实,只要你学会前面的动画生成,以及MP4文件生成,要想生成GIF,就非常简单了,只需要更改三行代码,就可以生成GIF文件了。所以说前面的技术都是非常基础的,学会了灵活地运用了。

下面先来看一下生成的GIF文件:

Matplotlib 输出gif文件

Matplotlib 输出gif文件

一定要记得查看前面的例子代码,因为这里只是更改一下前文的例子的代码,就可以从MP4文件转变为输出GIF文件,首先要修改的是下面这行代码:

pw_writer = animation.PillowWriter(fps = 20)

调用函数animation.PillowWriter()来构造一个GIF文件输出对象,输出的帧速率为20帧。

其次是修改保存的代码:

anim.save('ani-056.gif', writer = pw_writer)

修改文件名称和输出对象。



只要修改这两行代码,就可以把前面的例子变为输出GIF文件了。

整个完整的例子代码如下:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation 


# 创建绘图轴对象,创建一个空白窗口
fig = plt.figure() 
axis = plt.axes(xlim =(-50, 50), ylim =(-50, 50)) 
line, = axis.plot([], [], lw = 2)

#创建全局数据保存列表
xdata, ydata = [], []

#定义每次重复清空函数
def init():
    global xdata, ydata
    xdata, ydata = [], []
    line.set_data([], []) 
    return line,

#每帧动画更新函数
def animate(i): 
    # t 帧序号
    t = 0.1 * i 

    # x, y 绘图 
    x = t * np.sin(t) 
    y = t * np.cos(t) 

    # 增加到列表,连接起所有点。
    xdata.append(x) 
    ydata.append(y) 
    line.set_data(xdata, ydata) 

    return line, 

anim = animation.FuncAnimation(fig, animate, init_func = init,
                               frames = 500, interval = 20, blit = True) 

#保存的动画文件名为当前文件夹下的ani-056.gif,帧率为20帧每秒,格式为gif。
pw_writer = animation.PillowWriter(fps = 20)
anim.save('ani-056.gif', writer = pw_writer)

plt.show()  # 会一直循环播放动画
赞(0)
未经允许不得转载:极客笔记 » Matplotlib 输出gif文件
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址