matplotlib.animation.Animation¶
-
class
matplotlib.animation.
Animation
(fig, event_source=None, blit=False)[源代码]¶ 动画的基类。
这个类不能按原样使用,应该子类化以提供所需的行为。
参数: - fig :
Figure
图形 用于获取所需事件(如绘制或调整大小)的figure对象。
- event_source对象,可选
一个类,可以在生成所需事件以及停止和启动时运行回调。
例如计时器(参见
TimedAnimation
)和文件系统通知。- blitbool,默认值:False
是否使用光点切割优化绘图。
方法
__init__
[图] [, event_source, blit] )初始化自身。 new_frame_seq
()返回新的帧信息序列。 new_saved_frame_seq
()返回保存/缓存帧信息的新序列。 save
(文件名) [, 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)[源代码]¶ 通过绘制每个帧,将动画保存为电影文件。
参数: - filenameSTR
输出文件名,例如,
mymovie.mp4
.- 作家 :
MovieWriter
or str, default:rcParams["animation.writer"]
(default:'ffmpeg'
)MovieWriter或str,默认值:rcParams ["animation.writer"] (默认值:“ffmpeg”) A
MovieWriter
要使用的实例或标识要使用的类的键,例如“ffmpeg”。- fps可选的
电影帧速率(每秒)。如果未设置,则为动画帧间隔的帧速率。
- dpi : float, default:
rcParams["savefig.dpi"]
(default:'figure'
)浮动,默认值: 控制电影帧的每英寸点数。加上以英寸为单位的数字大小,这就控制了电影的大小。
- 编解码器 : str, default:
rcParams["animation.codec"]
(default:'h264'
) .str,默认值: 要使用的视频编解码器。不是所有的编解码器都受给定的
MovieWriter
.- 比特率 : int, default:
rcParams["animation.bitrate"]
(default:-1
)int,默认值: 电影的比特率,单位为千比特每秒。值越高表示电影质量越高,但会增加文件大小。值-1允许基础电影编码器选择比特率。
- extra_argsstr或None列表,可选
传递给底层电影编码器的额外命令行参数。默认值None表示使用
rcParams["animation.[name-of-encoder]_args"]
为了那些天生的作家。- metadata双关语 [STR,STR] ,默认值{}
要包含在输出文件中的元数据的键和值的字典。可能会用到的一些关键点包括:标题、艺术家、流派、主题、版权、srcform、评论。
- extra_anim列表,默认值:[]
附加的
Animation
应包含在保存的电影文件中的对象。这些需要来自同一个matplotlib.figure.Figure
实例。另外,动画帧只是简单地组合在一起,所以不同动画的帧之间应该有1:1的对应关系。- savefig_kwargsdict,默认值:{}
传递给每个
savefig
用于保存单个帧的调用。- progress_callback功能,可选
将为每个帧调用的回调函数,以通知保存进度。必须有签名:
def func(current_frame: int, total_frames: int) -> Any
在哪里? current_frame 是当前帧编号,并且 total_frames 要保存的帧总数。 total_frames 如果无法确定总帧数,则设置为“无”。返回值可能存在,但会被忽略。
将进度写入stdout的示例代码:
progress_callback = lambda i, n: print(f'Saving frame {i} of {n}')
笔记
fps , 编解码器 , 比特率 , extra_args 和 元数据 用于构造
MovieWriter
实例和只能在以下情况下传递 作家 是一个字符串。如果它们作为非- None 和 作家 是一个MovieWriter
,ARuntimeError
将被提升。
-
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。
返回: - STR
HTML5视频标签,动画嵌入为base64编码的h264视频。如果 embed_limit 如果超过,则返回字符串“视频太大,无法嵌入”。
- fig :