Matplotlib是Python中令人惊叹的可视化库,用于数组的二维图。 Matplotlib是一个基于NumPy数组的多平台数据可视化库,旨在与更广泛的SciPy堆栈配合使用。
matplotlib.animation.FuncAnimation
matplotlib.animation.FuncAnimation类用于通过重复调用同一函数(例如func)来制作动画。
用法: class matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)
Paramcontribute.geeksforgeeks.org/wp-admin/post.php?post=1675187&action;=编辑者:
- fig:它是用于绘制,调整大小或其他任何所需事件的图形对象。
可以通过fargs参数提供任何其他位置参数。
- func:每次都会调用可调用函数。通过第一个参数给出帧中的下一个值。其他任何其他位置参数是通过fargs参数给出的。如果blit值等于True,则func返回所有要修改或创建的艺术家的迭代。划线算法使用此数据来确定必须更新图形的哪些部分。如果blit == False,则返回的值未使用或省略。
- frames:它可以是可迭代的,整数,生成器函数或无。它是一个可选参数。它是要传递给func和动画每一帧的数据源。
- init_func:它是一个可选的可调用函数,用于绘制清晰的框架。
- fargs:它是一个可选参数,可以是元组或None,这是需要传递给func的每个调用的附加参数。
- save_count:它是一个整数,用作从帧到缓存的值数量的后备。仅在无法从帧推断帧数时使用,即当它是没有长度的迭代器或生成器时。默认值为100。
- interval:它是一个可选的整数值,表示每帧之间的延迟(以毫秒为单位)。默认值为100。
- repeat_delay:它是一个可选的整数值,它在重复动画之前添加以毫秒为单位的延迟。默认为无。
- blit:它是一个可选的布尔参数,用于控制绘图以优化图形。
- cache_frame_data:它是一个可选的布尔参数,用于控制数据的缓存。默认为True。
该类的方法:
方法 | 描述 |
---|---|
__init__(self, fig, func[, frames, …]) | 初始化自我。 |
new_frame_seq(self) | 返回新的帧信息序列。 |
new_saved_frame_seq(self) | 返回新的保存/缓存帧信息序列。 |
save(self, filename[, writer, fps, dpi, …]) | 通过绘制每帧将动画另存为电影文件。 |
to_html5_video(self[, embed_limit]) | 将动画转换为HTML5 <video>标签。 |
to_jshtml(self[, fps, embed_frames, …]) | 生成动画的HTML表示 |
范例1:
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 coordinates
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:
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)
输出:
相关用法
- Python Matplotlib.ticker.MultipleLocator用法及代码示例
- Python Matplotlib.gridspec.GridSpec用法及代码示例
- Python Matplotlib.patches.CirclePolygon用法及代码示例
- Python Matplotlib.colors.Normalize用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 Matplotlib.animation.FuncAnimation class in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。