matplotlib.animation.FuncAnimation#
- 类 matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)[source]#
TimedAnimation
子类,通过重复调用函数 func 来创建动画。注意
您必须将创建的 Animation 对象存储在一个变量中,该变量的生命周期应与动画运行时间一样长。否则,Animation 对象将被垃圾回收,动画将停止。
- 参数:
- fig
Figure
用于获取所需事件(如绘制或调整大小)的图形对象。
- func可调用
每一帧调用的函数。第一个参数将是 frames 中的下一个值。任何额外的 Positional arguments can be supplied using
functools.partial
or via the fargs parameter。所需签名是
def func(frame, *fargs) -> iterable_of_artists
通常使用
functools.partial
提供参数更方便。这样也可以传递关键字参数。要传递一个既有位置参数又有关键字参数的函数,请将所有参数设置为关键字参数,只留下 frame 参数未设置def func(frame, art, *, y=None): ... ani = FuncAnimation(fig, partial(func, art=ln, y='foo'))
如果
blit == True
,func 必须返回所有被修改或创建的 artist 的可迭代对象。此信息用于 blitting 算法来确定图形的哪些部分需要更新。如果blit == False
,则返回值未使用,在这种情况下可以省略。- frames可迭代对象,整型,生成器函数,或无,可选
用于向 func 和动画的每一帧传递数据的数据源
如果是一个可迭代对象,则直接使用提供的值。如果可迭代对象有长度,它将覆盖 save_count kwarg。
如果是一个整型,则相当于传递
range(frames)
。如果是一个生成器函数,则必须具有以下签名
def gen_function() -> obj
如果为 None,则相当于传递
itertools.count
。
在所有这些情况下,frames 中的值都只是传递给用户提供的 func,因此可以是任何类型。
- init_func可调用,可选
用于绘制清晰帧的函数。如果未提供,则将使用从 frames 序列中第一个项绘制的结果。此函数将在第一帧之前调用一次。
所需签名是
def init_func() -> iterable_of_artists
如果
blit == True
,init_func 必须返回要重新绘制的 artist 的可迭代对象。此信息用于 blitting 算法来确定图形的哪些部分需要更新。如果blit == False
,则返回值未使用,在这种情况下可以省略。- fargs元组或无,可选
传递给 func 的每次调用的附加参数。注意:建议使用
functools.partial
而不是 fargs。详情请参见 func。- save_count整型,可选
frames 中要缓存的值数量的备用值。这仅在无法从 frames 推断帧数时使用,即当它是一个没有长度的迭代器或生成器时。
- interval整数,默认值:200
帧之间的延迟(毫秒)。
- repeat_delay整数,默认值:0
如果 repeat 为 True,则连续动画运行之间的延迟(毫秒)。
- repeat布尔值,默认值:True
当帧序列完成后,动画是否重复。
- blit布尔值,默认值:False
是否使用 blitting 优化绘图。注意:当使用 blitting 时,任何动画 artist 将根据其 zorder 绘制;但是,它们将绘制在任何之前的 artist 之上,无论其 zorder 如何。
- cache_frame_data布尔值,默认为 True
是否缓存帧数据。当帧包含大型对象时,禁用缓存可能会有所帮助。
- fig
- __init__(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)[source]#
方法
__init__
(fig, func[, frames, init_func, ...])返回一个新的帧信息序列。
返回一个新的已保存/缓存的帧信息序列。
pause
()暂停动画。
resume
()恢复动画。
save
(filename[, writer, fps, dpi, codec, ...])通过绘制每一帧将动画保存为视频文件。
to_html5_video
([embed_limit])将动画转换为 HTML5
<video>
标签。to_jshtml
([fps, embed_frames, default_mode])生成动画的 HTML 表示。