matplotlib.animation.Animation#

class matplotlib.animation.Animation(fig, event_source=None, blit=False)[source]#

动画的基础类。

此类别无法直接使用,应通过子类化来提供所需行为。

注意

您必须将创建的 Animation 对象存储在一个变量中,该变量的生命周期应与动画运行时间一样长。否则,Animation 对象将被垃圾回收,动画将停止。

参数:
figFigure

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

event_source对象,可选

一个可以在生成所需事件时运行回调,并且可以停止和启动的类。

示例包括计时器(参见 TimedAnimation)和文件系统通知。

blit布尔值,默认值:False

是否使用 Blitting 来优化绘图。如果后端不支持 Blitting,则此参数无效。

__init__(fig, event_source=None, blit=False)[source]#

方法

__init__(fig[, event_source, blit])

new_frame_seq()

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

new_saved_frame_seq()

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

pause()

暂停动画。

resume()

恢复动画。

save(filename[, writer, fps, dpi, codec, ...])

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

to_html5_video([embed_limit])

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

to_jshtml([fps, embed_frames, default_mode])

生成动画的 HTML 表示。

new_frame_seq()[source]#

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

new_saved_frame_seq()[source]#

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

pause()[source]#

暂停动画。

resume()[source]#

恢复动画。

save(filename, writer=None, fps=None, dpi=None, codec=None, bitrate=None, extra_args=None, metadata=None, extra_anim=None, savefig_kwargs=None, *, progress_callback=None)[source]#

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

参数:
filename字符串

输出文件名,例如 mymovie.mp4

writerMovieWriter 或 字符串, 默认值: rcParams["animation.writer"] (默认值: 'ffmpeg')

要使用的 MovieWriter 实例,或标识要使用的类的键,例如 'ffmpeg'。

fpsint,可选

电影帧率(每秒)。如果未设置,则使用动画的帧间隔的帧率。

dpi浮点数,默认值: rcParams["savefig.dpi"] (默认值: 'figure')

控制电影帧的每英寸点数。与图形的英寸大小一起,这控制了电影的大小。

codec字符串,默认值: rcParams["animation.codec"] (默认值: 'h264')。

要使用的视频编解码器。并非所有编解码器都受给定 MovieWriter 支持。

bitrateint,默认值: rcParams["animation.bitrate"] (默认值: -1)

电影的比特率,单位为千比特每秒。值越高意味着电影质量越高,但会增加文件大小。值为 -1 表示底层电影编码器将选择比特率。

extra_args字符串列表或 None,可选

传递给底层电影编码器的额外命令行参数。这些参数将在输出文件名之前,最后传递给编码器。默认值 None 表示对内置写入器使用 rcParams["animation.[name-of-encoder]_args"]

metadatadict[字符串, 字符串],默认值: {}

用于在输出文件中包含元数据的键值字典。可能有用的一些键包括:title(标题)、artist(艺术家)、genre(流派)、subject(主题)、copyright(版权)、srcform(源格式)、comment(评论)。

extra_anim列表,默认值: []

应包含在保存的电影文件中的额外 Animation 对象。这些对象必须来自同一个 Figure 实例。此外,动画帧将简单地合并,因此不同动画的帧之间应存在一对一的对应关系。

savefig_kwargsdict,默认值: {}

传递给每次 savefig 调用以保存单个帧的关键字参数。

progress_callback函数,可选

一个回调函数,每帧都会调用它以通知保存进度。它必须具有以下签名:

def func(current_frame: int, total_frames: int) -> Any

其中 current_frame 是当前帧号,total_frames 是要保存的总帧数。如果无法确定总帧数,则 total_frames 将设置为 None。返回值可能存在,但会被忽略。

将进度写入标准输出的示例代码

progress_callback = lambda i, n: print(f'Saving frame {i}/{n}')

备注

fpscodecbitrateextra_argsmetadata 用于构建一个 MovieWriter 实例,并且只有当 writer 是字符串时才能传递。如果它们作为非 None 传递而 writer 是一个 MovieWriter 实例,则会引发 RuntimeError

to_html5_video(embed_limit=None)[source]#

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

这会将动画保存为 h264 视频,直接以 base64 编码嵌入到 HTML5 视频标签中。这会遵守 rcParams["animation.writer"] (默认值: 'ffmpeg') 和 rcParams["animation.bitrate"] (默认值: -1)。它还会利用 interval 来控制速度,并使用 repeat 参数来决定是否循环播放。

参数:
embed_limit浮点数,可选

返回动画的大小限制,单位为 MB。如果超出限制,则不会创建动画。默认为 rcParams["animation.embed_limit"] (默认值: 20.0) = 20.0。

返回:
字符串

一个 HTML5 视频标签,其中动画以 base64 编码的 h264 视频形式嵌入。如果超出 embed_limit,则返回字符串“Video too large to embed.”

to_jshtml(fps=None, embed_frames=True, default_mode=None)[source]#

生成动画的 HTML 表示。

参数:
fpsint,可选

电影帧率(每秒)。如果未设置,则使用动画的帧间隔的帧率。

embed_frames布尔值,可选
default_mode字符串,可选

动画结束时的行为。必须是 {'loop', 'once', 'reflect'} 之一。如果 repeat 参数为 True,则默认为 'loop',否则为 'once'

返回:
字符串

动画的 HTML 表示,以 js 对象形式嵌入,由 HTMLWriter 生成。