python能够用来做动图,动图指的就是可以动态演出播放的图片,动图都是以gif作为文件后缀名的。而python中创建动态图片的方法有很多种,这一篇文章要来给大家介绍的就是使用matplotlib库创建动态图片,感兴趣的话就一起往下看看吧。
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怎么创建动态图片”的全部内容了,希望对你有所帮助。