matplotlib.animation.Animation#

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

动画的基类。

此类不能直接使用,应通过子类化来提供所需的行为。

备注

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

参数:
fig

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

事件源对象,可选

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

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

blitbool, 默认值: False

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

__init__(fig, event_source=None, blit=False)[源代码][源代码]#

方法

__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()[源代码][源代码]#

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

new_saved_frame_seq()[源代码][源代码]#

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

pause()[源代码][源代码]#

暂停动画。

resume()[源代码][源代码]#

恢复动画。

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)[源代码][源代码]#

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

参数:
文件名str

输出文件名,例如 mymovie.mp4

writer : MovieWriter 或 str, 默认值: rcParams["animation.writer"] (default: 'ffmpeg')MovieWriter 或 str, 默认值: rcParams["animation.writer"] (默认: 'ffmpeg')

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

fpsint, 可选

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

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

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

codec : str, 默认值: rcParams["animation.codec"] (default: 'h264').str, 默认值:

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

比特率 : int, 默认值: rcParams["animation.bitrate"] (default: -1)int, 默认值:

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

extra_argslist of str or None, 可选

传递给底层视频编码器的额外命令行参数。这些参数在输出文件名之前最后传递给编码器。默认值 None 表示使用 rcParams["animation.[编码器名称]_args"] 作为内置编写器的参数。

元数据dict[str, str], 默认: {}

包含要在输出文件中包含的元数据的键值字典。一些可能有用的键包括: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 传递且 writerMovieWriter,则会引发 RuntimeError

to_html5_video(embed_limit=None)[源代码][源代码]#

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

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

参数:
embed_limit浮点数, 可选

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

返回:
str

一个嵌入了动画的HTML5视频标签,动画以base64编码的h264视频形式嵌入。如果超过了*embed_limit*,则返回字符串“视频过大无法嵌入。”

to_jshtml(fps=None, embed_frames=True, default_mode=None)[源代码][源代码]#

生成动画的HTML表示。

参数:
fpsint, 可选

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

嵌入框架bool, 可选
默认模式str, 可选

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

返回:
str

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