matplotlib.animation.Animation¶
-
class
matplotlib.animation.Animation(fig, event_source=None, blit=False)[source]¶ A base class for Animations.
This class is not usable as is, and should be subclassed to provide needed behavior.
Parameters: - fig
Figure The figure object used to get needed events, such as draw or resize.
- event_sourceobject, optional
A class that can run a callback when desired events are generated, as well as be stopped and started.
Examples include timers (see
TimedAnimation) and file system notifications.- blitbool, default: False
Whether blitting is used to optimize drawing.
See also
-
__init__(self, fig, event_source=None, blit=False)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__(self, fig[, event_source, blit])Initialize self. new_frame_seq(self)Return a new sequence of frame information. new_saved_frame_seq(self)Return a new sequence of saved/cached frame information. save(self, filename[, writer, fps, dpi, ...])Save the animation as a movie file by drawing every frame. to_html5_video(self[, embed_limit])Convert the animation to an HTML5 <video>tag.to_jshtml(self[, fps, embed_frames, ...])Generate HTML representation of the animation -
save(self, 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]¶ Save the animation as a movie file by drawing every frame.
Parameters: - filenamestr
The output filename, e.g.,
mymovie.mp4.- writer
MovieWriteror str, default:rcParams["animation.writer"](default:'ffmpeg') A
MovieWriterinstance to use or a key that identifies a class to use, such as 'ffmpeg'.- fpsint, optional
Movie frame rate (per second). If not set, the frame rate from the animation's frame interval.
- dpifloat, default:
rcParams["savefig.dpi"](default:'figure') Controls the dots per inch for the movie frames. Together with the figure's size in inches, this controls the size of the movie.
- codecstr, default:
rcParams["animation.codec"](default:'h264'). The video codec to use. Not all codecs are supported by a given
MovieWriter.- bitrateint, default:
rcParams["animation.bitrate"](default:-1) The bitrate of the movie, in kilobits per second. Higher values means higher quality movies, but increase the file size. A value of -1 lets the underlying movie encoder select the bitrate.
- extra_argslist of str or None, optional
Extra command-line arguments passed to the underlying movie encoder. The default, None, means to use
rcParams["animation.[name-of-encoder]_args"]for the builtin writers.- metadataDict[str, str], default {}
Dictionary of keys and values for metadata to include in the output file. Some keys that may be of use include: title, artist, genre, subject, copyright, srcform, comment.
- extra_animlist, default: []
Additional
Animationobjects that should be included in the saved movie file. These need to be from the samematplotlib.figure.Figureinstance. Also, animation frames will just be simply combined, so there should be a 1:1 correspondence between the frames from the different animations.- savefig_kwargsdict, default: {}
Keyword arguments passed to each
savefigcall used to save the individual frames.- progress_callbackfunction, optional
A callback function that will be called for every frame to notify the saving progress. It must have the signature
def func(current_frame: int, total_frames: int) -> Any
where current_frame is the current frame number and total_frames is the total number of frames to be saved. total_frames is set to None, if the total number of frames can not be determined. Return values may exist but are ignored.
Example code to write the progress to stdout:
progress_callback = lambda i, n: print(f'Saving frame {i} of {n}')
Notes
fps, codec, bitrate, extra_args and metadata are used to construct a
MovieWriterinstance and can only be passed if writer is a string. If they are passed as non-None and writer is aMovieWriter, aRuntimeErrorwill be raised.
-
to_html5_video(self, embed_limit=None)[source]¶ Convert the animation to an HTML5
<video>tag.This saves the animation as an h264 video, encoded in base64 directly into the HTML5 video tag. This respects
rcParams["animation.writer"](default:'ffmpeg') andrcParams["animation.bitrate"](default:-1). This also makes use of theintervalto control the speed, and uses therepeatparameter to decide whether to loop.Parameters: - embed_limitfloat, optional
Limit, in MB, of the returned animation. No animation is created if the limit is exceeded. Defaults to
rcParams["animation.embed_limit"](default:20.0) = 20.0.
Returns: - str
An HTML5 video tag with the animation embedded as base64 encoded h264 video. If the embed_limit is exceeded, this returns the string "Video too large to embed."
- fig