matplotlib.animation.Animation#
- class matplotlib.animation.Animation(fig, event_source=None, blit=False)[源代码][源代码]#
动画的基类。
此类不能直接使用,应通过子类化来提供所需的行为。
备注
你必须将创建的动画存储在一个变量中,该变量的生命周期应与动画的运行时间一样长。否则,动画对象将被垃圾回收,动画将停止。
- 参数:
- fig图
用于获取所需事件(如绘制或调整大小)的图形对象。
- 事件源对象,可选
一个类,可以在生成所需事件时运行回调,也可以停止和启动。
示例包括计时器(参见
TimedAnimation
)和文件系统通知。- blitbool, 默认值: False
是否使用blitting来优化绘图。如果后端不支持blitting,则此参数无效。
方法
__init__
(fig[, event_source, blit])返回一个新的帧信息序列。
返回一个新的保存/缓存的帧信息序列。
pause
()暂停动画。
resume
()恢复动画。
save
(filename[, writer, fps, dpi, codec, ...])通过绘制每一帧将动画保存为电影文件。
to_html5_video
([embed_limit])将动画转换为 HTML5
<video>
标签。to_jshtml
([fps, embed_frames, default_mode])生成动画的HTML表示。
- 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}')
注释
fps、codec、bitrate、extra_args 和 metadata 用于构建
MovieWriter
实例,并且只有在 writer 是字符串时才能传递。如果它们作为非 None 传递且 writer 是MovieWriter
,则会引发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
生成。