You are reading an old version of the documentation (v2.2.0). For the latest version see
Version 2.2.0
Fork me on GitHub

This Page


class matplotlib.animation.Animation(fig, event_source=None, blit=False)

This class wraps the creation of an animation using matplotlib.

It is only a base class which should be subclassed to provide needed behavior.

This class is not typically used directly.


fig : matplotlib.figure.Figure

The figure object that is used to get draw, resize, and any other needed events.

event_source : object, 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.

blit : bool, optional

controls whether blitting is used to optimize drawing. Defaults to False.

__init__(fig, event_source=None, blit=False)

Initialize self. See help(type(self)) for accurate signature.


__init__(fig[, event_source, blit]) Initialize self.
new_frame_seq() Creates a new sequence of frame information.
new_saved_frame_seq() Creates a new sequence of saved/cached frame information.
save(filename[, writer, fps, dpi, codec, …]) Saves a movie file by drawing every frame.
to_html5_video([embed_limit]) Returns animation as an HTML5 video tag.
to_jshtml([fps, embed_frames, default_mode]) Generate HTML representation of the animation

Creates a new sequence of frame information.


Creates a new sequence of saved/cached frame information.

save(filename, writer=None, fps=None, dpi=None, codec=None, bitrate=None, extra_args=None, metadata=None, extra_anim=None, savefig_kwargs=None)

Saves a movie file by drawing every frame.


filename : str

The output filename, e.g., mymovie.mp4.

writer : MovieWriter or str, optional

A MovieWriter instance to use or a key that identifies a class to use, such as ‘ffmpeg’. If None, defaults to rcParams["animation.writer"].

fps : number, optional

Frames per second in the movie. Defaults to None, which will use the animation’s specified interval to set the frames per second.

dpi : number, optional

Controls the dots per inch for the movie frames. This combined with the figure’s size in inches controls the size of the movie. If None, defaults to rcParams["savefig.dpi"].

codec : str, optional

The video codec to be used. Not all codecs are supported by a given MovieWriter. If None, default to rcParams["animation.codec"].

bitrate : number, optional

Specifies the number of bits used per second in the compressed movie, in kilobits per second. A higher number means a higher quality movie, but at the cost of increased file size. If None, defaults to rcParams["animation.bitrate"].

extra_args : list, optional

List of extra string arguments to be passed to the underlying movie utility. If None, defaults to rcParams["animation.extra_args"].

metadata : Dict[str, str], optional

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_anim : list, optional

Additional Animation objects that should be included in the saved movie file. These need to be from the same matplotlib.figure.Figure instance. Also, animation frames will just be simply combined, so there should be a 1:1 correspondence between the frames from the different animations.

savefig_kwargs : dict, optional

Is a dictionary containing keyword arguments to be passed on to the savefig command which is called repeatedly to save the individual frames.


fps, codec, bitrate, extra_args, metadata are used to construct a MovieWriter instance and can only be passed if writer is a string. If they are passed as non-None and writer is a MovieWriter, a RuntimeError will be raised.


Returns animation as an HTML5 video tag.

This saves the animation as an h264 video, encoded in base64 directly into the HTML5 video tag. This respects the rc parameters for the writer as well as the bitrate. This also makes use of the interval to control the speed, and uses the repeat parameter to decide whether to loop.

to_jshtml(fps=None, embed_frames=True, default_mode=None)

Generate HTML representation of the animation