matplotlib.animation.FuncAnimation #

matplotlib.animation。FuncAnimation ( fig , func , frames = None , init_func = None , fargs = None , save_count = None , * , cache_frame_data = True , ** kwargs ) [来源] #

通过重复调用函数func来制作动画。

笔记

您必须将创建的动画存储在一个变量中,只要动画应该运行,该变量就会存在。否则,动画对象将被垃圾收集并且动画停止。

参数
Figure

用于获取所需事件的图形对象,例如绘制或调整大小。

函数可调用

在每一帧调用的函数。第一个参数将是frames中的下一个值。任何额外的位置参数都可以通过fargs参数提供。

所需的签名是:

def func(frame, *fargs) -> iterable_of_artists

如果,func必须返回所有被修改或创建的艺术家的迭代。位图算法使用此信息来确定图形的哪些部分必须更新。如果在这种情况下可以省略返回值,则返回值是未使用的。blit == Trueblit == False

可迭代,int,生成器函数,或无,可选

传递func和动画每一帧的数据源

  • 如果是可迭代的,则只需使用提供的值。如果 iterable 有长度,它将覆盖save_count kwarg。

  • 如果是整数,则相当于通过range(frames)

  • 如果是生成器函数,则必须具有签名:

    def gen_function() -> obj
    
  • 如果None,则相当于通过itertools.count

在所有这些情况下,frames中的值只是简单地传递给用户提供的func,因此可以是任何类型。

init_func可调用,可选

用于绘制清晰框架的函数。如果未给出,将使用从帧序列中的第一项绘制的结果。此函数将在第一帧之前调用一次。

所需的签名是:

def init_func() -> iterable_of_artists

如果,init_func必须返回一个可迭代的艺术家以重新绘制。位图算法使用此信息来确定图形的哪些部分必须更新。如果在这种情况下可以省略返回值,则返回值是未使用的。blit == Trueblit == False

fargs元组或无,可选

传递给对func的每次调用的附加参数。

save_count int,默认值:100

从帧到缓存的值数量的后备。这仅在无法从 frames 推断出帧数时使用,即当它是没有长度的迭代器或生成器时。

间隔整数,默认值:200

帧之间的延迟(以毫秒为单位)。

repeat_delay int,默认值:0

如果repeat为 True ,则连续动画运行之间的延迟(以毫秒为单位 )。

重复布尔,默认:真

当帧序列完成时动画是否重复。

blit布尔值,默认值:False

blitting 是否用于优化绘图。注意:使用 blitting 时,任何动画艺术家都将根据其 zorder 进行绘制;但是,无论他们的 zorder 是什么,他们都将被绘制在任何以前的艺术家之上。

cache_frame_data布尔值,默认值:True

帧数据是否被缓存。当帧包含大型对象时,禁用缓存可能会有所帮助。

__init__ ( fig , func , frames = None , init_func = None , fargs = None , save_count = None , * , cache_frame_data = True , ** kwargs ) [来源] #

方法

__init__(无花果,func [,帧,init_func,...])

new_frame_seq()

返回一个新的帧信息序列。

new_saved_frame_seq()

返回保存/缓存的帧信息的新序列。

pause()

暂停动画。

resume()

恢复动画。

save(文件名[, writer, fps, dpi, codec, ...])

通过绘制每一帧将动画保存为电影文件。

to_html5_video([嵌入限制])

将动画转换为 HTML5<video>标签。

to_jshtml([fps, embed_frames, default_mode])

生成动画的 HTML 表示。

new_frame_seq ( ) [来源] #

返回一个新的帧信息序列。

new_saved_frame_seq ( ) [来源] #

返回保存/缓存的帧信息的新序列。