优草派  >   Python

Python能够做动图吗?Python怎么创建动态图片

罗西汉            来源:优草派

python能够用来做动图,动图指的就是可以动态演出播放的图片,动图都是以gif作为文件后缀名的。而python中创建动态图片的方法有很多种,这一篇文章要来给大家介绍的就是使用matplotlib库创建动态图片,感兴趣的话就一起往下看看吧。

Python能够做动图吗?Python怎么创建动态图片

1.首先还是打开python编辑器创建新的python文件来编写代码,然后导入必要的模块。因为matplotlib是一个库并不需要用到它里面所有方法,只需要导入pyplot模块以及FuncAnimation方法就可以了。然后还需要先创建出来画布并且将其初始化,代码示例如下:

import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
fig.set_tight_layout(True)

2.接着就是要去获取当前电脑屏幕上的画布大小以及DPI,DPI表示的就是每英寸点数,可以简单的理解为图片的清晰度。然后调用scatter()方法来绘制出来一个散点图和初始的直线,示例如下:

print('fig size: {0} DPI, size in inches {1}'.format(fig.get_dpi(), fig.get_size_inches()))
x = np.arange(0, 20, 0.1)
ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))
line= ax.plot(x, x - 5, 'r-', linewidth=2)

3.第三步就是要定义一个变量来保存动态图片显示的名称,并且需要重新的更新一下散点图之前设置好的图片并且设置x轴。然后将这一帧,也就是这次动态演示需要生成的图片以数组的形式返回出去,示例如下所示:

def update(i):
 label = 'timestep {0}'.format(i)
line.set_ydata(x - 5 + i)
 ax.set_xlabel(label)
 return line, ax

4.最后的话只需要在调用FuncAnimation()来创建动态图片,那么这个方法所需要的参数就是画布对象、绘制图像并返回数据的函数、图片生成后的帧数以及每帧的间隔时间。其中帧数指的就是这个动态图片由多少个图像组成,间隔时间的单位是毫秒,表示的是图像播放时间。调用save()方法保存动态图片即可,代码如下:

if __name__ == '__main__':
  anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)
  anim.save('line.gif', dpi=80, writer='imagemagick')

以上就是关于“Python能够做动图吗?Python怎么创建动态图片”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。