Python 中的 matplotlib.animation.func animation 类
原文:https://www.geesforgeks.org/matplotlib-animation-func animation-python 中的类/
Matplotlib 是 Python 中一个惊人的可视化库,用于数组的 2D 图。Matplotlib 是一个多平台数据可视化库,构建在 NumPy 数组上,旨在与更广泛的 SciPy 堆栈一起工作。
matplotlib.animation 动画
matplotlib.animation.FuncTion类用于通过重复调用同一个函数(即 func)来制作动画。
语法:class matplotlib.animation.func animation(fig,func,frames=None,init_func=None,fargs=None,save_count=None, cache_frame_data = True, * kwargs) Paramwrite.geeksforgeeks.org/wp-admin/post.php?post=1675187&动作=编辑器:
图:是用于绘图、调整大小或任何其他需要的事件的图形对象。 任何额外的位置参数都可以通过 fargs 参数提供。
func: 是每次被调用的可调用函数。帧中的下一个值通过第一个参数给出。任何其他位置参数都是通过 fargs 参数给出的。如果 blit 值等于 True,则 func 返回要修改或创建的所有艺术家的列表。块传送算法使用这些数据来决定图形的哪些部分需要更新。如果 blit== False,则返回的值未被使用或被省略。
帧:它可以是可迭代的、整数、生成器函数或无。这是一个可选的参数。它是传递给 func 和动画每一帧的数据源。
init_func: 是一个可选的可调用函数,用于绘制清晰的框架。
fargs: 它是一个可选参数,要么是元组,要么是无,这是一个额外的参数,需要传递给 func 的每个调用。
save_count: 它是一个整数,作为从帧到缓存的值数量的后备。仅当无法从帧中推断出帧数时,即当它是一个没有长度的迭代器或生成器时,才使用此选项。它的默认值是 100。
间隔:是可选的整数值,表示每帧之间的延迟,单位为毫秒。它的默认值是 100。
repeat_delay: 它是一个可选的整数值,在重复动画之前增加一个延迟(以毫秒为单位)。默认为无。
blit: 这是一个可选的布尔参数,用于控制 blitting 以优化绘图。
cache_frame_data: 是一个可选的布尔参数,用于控制数据的缓存。默认为真。
该类方法:
例 1:
蟒蛇 3
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
# creating a blank window
# for the animation
fig = plt.figure()
axis = plt.axes(xlim =(-50, 50),
ylim =(-50, 50))
line, = axis.plot([], [], lw = 2)
# what will our line dataset
# contain?
def init():
line.set_data([], [])
return line,
# initializing empty values
# for x and y co-ordinates
xdata, ydata = [], []
# animation function
def animate(i):
# t is a parameter which varies
# with the frame number
t = 0.1 * i
# x, y values to be plotted
x = t * np.sin(t)
y = t * np.cos(t)
# appending values to the previously
# empty x and y data holders
xdata.append(x)
ydata.append(y)
line.set_data(xdata, ydata)
return line,
# calling the animation function
anim = animation.FuncAnimation(fig, animate,
init_func = init,
frames = 500,
interval = 20,
blit = True)
# saves the animation in our desktop
anim.save('growingCoil.mp4', writer = 'ffmpeg', fps = 30)
输出:
例 2:
蟒蛇 3
from matplotlib import pyplot as plt
import numpy as np
from matplotlib.animation import FuncAnimation
# initializing a figure in
# which the graph will be plotted
fig = plt.figure()
# marking the x-axis and y-axis
axis = plt.axes(xlim =(0, 4),
ylim =(-2, 2))
# initializing a line variable
line, = axis.plot([], [], lw = 3)
# data which the line will
# contain (x, y)
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 4, 1000)
# plots a sine graph
y = np.sin(2 * np.pi * (x - 0.01 * i))
line.set_data(x, y)
return line,
anim = FuncAnimation(fig, animate,
init_func = init,
frames = 200,
interval = 20,
blit = True)
anim.save('continuousSineWave.mp4',
writer = 'ffmpeg', fps = 30)
输出: