You are reading documentation for the unreleased version of Matplotlib. Try searching for the released version of this page instead?
Version 3.0.2.post1971+g24524c430
matplotlib
Fork me on GitHub

Table of Contents

matplotlib.pyplot.savefig

matplotlib.pyplot.savefig(*args, **kwargs)[source]

Save the current figure.

Call signature:

savefig(fname, dpi=None, facecolor='w', edgecolor='w',
        orientation='portrait', papertype=None, format=None,
        transparent=False, bbox_inches=None, pad_inches=0.1,
        frameon=None, metadata=None)

The output formats available depend on the backend being used.

Parameters:
fname : str or PathLike or file-like object

A path, or a Python file-like object, or possibly some backend-dependent object such as matplotlib.backends.backend_pdf.PdfPages.

If format is not set, then the output format is inferred from the extension of fname, if any, and from rcParams["savefig.format"] otherwise. If format is set, it determines the output format.

Hence, if fname is not a path or has no extension, remember to specify format to ensure that the correct backend is used.

Other Parameters:
dpi : [ None | scalar > 0 | 'figure' ]

The resolution in dots per inch. If None, defaults to rcParams["savefig.dpi"]. If 'figure', uses the figure's dpi value.

quality : [ None | 1 <= scalar <= 100 ]

The image quality, on a scale from 1 (worst) to 95 (best). Applicable only if format is jpg or jpeg, ignored otherwise. If None, defaults to rcParams["savefig.jpeg_quality"] (95 by default). Values above 95 should be avoided; 100 completely disables the JPEG quantization stage.

optimize : bool

If True, indicates that the JPEG encoder should make an extra pass over the image in order to select optimal encoder settings. Applicable only if format is jpg or jpeg, ignored otherwise. Is False by default.

progressive : bool

If True, indicates that this image should be stored as a progressive JPEG file. Applicable only if format is jpg or jpeg, ignored otherwise. Is False by default.

facecolor : color spec or None, optional

The facecolor of the figure; if None, defaults to rcParams["savefig.facecolor"].

edgecolor : color spec or None, optional

The edgecolor of the figure; if None, defaults to rcParams["savefig.edgecolor"]

orientation : {'landscape', 'portrait'}

Currently only supported by the postscript backend.

papertype : str

One of 'letter', 'legal', 'executive', 'ledger', 'a0' through 'a10', 'b0' through 'b10'. Only supported for postscript output.

format : str

The file format, e.g. 'png', 'pdf', 'svg', ... The behavior when this is unset is documented under fname.

transparent : bool

If True, the axes patches will all be transparent; the figure patch will also be transparent unless facecolor and/or edgecolor are specified via kwargs. This is useful, for example, for displaying a plot on top of a colored background on a web page. The transparency of these patches will be restored to their original values upon exit of this function.

bbox_inches : str or Bbox, optional

Bbox in inches. Only the given portion of the figure is saved. If 'tight', try to figure out the tight bbox of the figure. If None, use savefig.bbox

pad_inches : scalar, optional

Amount of padding around the figure when bbox_inches is 'tight'. If None, use savefig.pad_inches

bbox_extra_artists : list of Artist, optional

A list of extra artists that will be considered when the tight bbox is calculated.

metadata : dict, optional

Key/value pairs to store in the image metadata. The supported keys and defaults depend on the image format and backend:

  • 'png' with Agg backend: See the parameter metadata of print_png.
  • 'pdf' with pdf backend: See the parameter metadata of PdfPages.
  • 'eps' and 'ps' with PS backend: Only 'Creator' is supported.
pil_kwargs : dict, optional

Additional keyword arguments that are passed to PIL.Image.save when saving the figure. Only applicable for formats that are saved using Pillow, i.e. JPEG, TIFF, and (if the keyword is set to a non-None value) PNG.