使用 Python Matplotlib 创建动画 GIF
原文:https://www.geesforgeks.org/create-an-animated-gif-using-python-matplotlib/
在本文中,我们将讨论如何使用 Python 中的 Matplotlib 创建动画 GIF。
Matplotlib 只能用于创建基于数学的动画。这些可以包括在圆周上移动的一个点,或者像声波一样的正弦或余弦波。在 Matplotlib 中,我们有一个名为 animation 的库,我们可以从中导入一个名为 FuncAnimation()的函数。此功能用于创建动画。该函数用于每次以特定的时间间隔调用一个 动画函数 ,并在图中显示动画函数的输出。因此,这个函数主要将这四个作为它的输入。
语法:
FuncAnimation( Figure, AnimationFunction, Frames, Interval)
此外,还有其他功能和对象,它们一起使动画成为可能。它们如下所示:
- 我们将要求 NumPy 用于各种数学函数和数组。
- 最后,我们将需要 matplotlib 的绘图能力,它将从 pyplot 模块导入。
导入所需的模块
import numpy as np
from matplotlib.animation import FuncAnimation
from IPython import display
import matplotlib.pyplot as plt
入门 :
- 这个想法是首先创建一个简单的任何函数的图(这里我们取了例如余弦),然后函数动画函数将继续调用动画函数,在给定的时间间隔后作为参数连续传递给它。
- 我们只需要给出这样一个实现,它将导致我们已经通过的动画功能中的情节位置发生变化。由于间隔太小(以毫秒为单位),所以我们觉得它是动画。
这是创建动画的基本思想。
创建动画:
我们将创建一个以视频动画格式显示的余弦波。
下面列出了使用的各种步骤和想法。
- 创建一个图形,其中动画将与 x 轴和 y 轴一起显示。这是通过创建一个我们可以限制 x 轴和 y 轴的图来完成的。
蟒蛇 3
Figure = plt.figure()
# creating a plot
lines_plotted = plt.plot([])
# putting limits on x axis since
# it is a trigonometry function
# (0,2∏)
line_plotted = lines_plotted[0]
plt.xlim(0,2*np.pi)
# putting limits on y since it is a
# cosine function
plt.ylim(-1.1,1.1)
# initialising x from 0 to 2∏
x = np.linspace(0,2*np.pi,100)
#initially
y = 0
- 现在让我们创建我们的动画功能,它将根据参数帧连续改变绘图的 x 和 y 坐标。原因是 fun 动漫会根据帧连续调用这个函数。因为动画仅仅意味着一帧接一帧地创建视频。
蟒蛇 3
# function takes frame as an input
def AnimationFunction(frame):
# setting y according to frame
# number and + x. It's logic
y = np.cos(x+2*np.pi*frame/100)
# line is set with new values of x and y
line_plotted.set_data((x, y))
- 现在是时候调用我们的函数动画函数了,它将根据帧数连续调用上面定义的函数。我们给出的时间间隔是 25 毫秒。
anim_created =fun 动漫(图,AnimationFunction,帧数=100,间隔=25)
- 现在是时候展示我们的动画了。因此,我们必须通过下面给出的代码来制作一个 HTML 文件:
蟒蛇 3
video = anim_created.to_html5_video()
html = display.HTML(video)
display.display(html)
# good practice to close the plt object.
plt.close()
因此,完整的代码可以在本地运行(如果安装了库),也可以在 Jupyter 笔记本或合作笔记本上在线运行。
输出:
因此,我们能够使用 Matplotlib 创建动画,这使得学习数学变得容易。