matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)[source]

Create a new figure.

numint or str, optional, default: None

If not provided, a new figure will be created, and the figure number will be incremented. The figure objects holds this number in a number attribute. If num is provided, and a figure with this id already exists, make it active, and returns a reference to it. If this figure does not exists, create it and returns it. If num is a string, the window title will be set to this figure's num.

figsize(float, float), optional, default: None

width, height in inches. If not provided, defaults to rcParams["figure.figsize"] (default: [6.4, 4.8]) = [6.4, 4.8].

dpiinteger, optional, default: None

resolution of the figure. If not provided, defaults to rcParams["figure.dpi"] (default: 100.0) = 100.


the background color. If not provided, defaults to rcParams["figure.facecolor"] (default: 'white') = 'w'.


the border color. If not provided, defaults to rcParams["figure.edgecolor"] (default: 'white') = 'w'.

frameonbool, optional, default: True

If False, suppress drawing the figure frame.

FigureClasssubclass of Figure

Optionally use a custom Figure instance.

clearbool, optional, default: False

If True and the figure already exists, then it is cleared.


The Figure instance returned will also be passed to new_figure_manager in the backends, which allows to hook custom Figure classes into the pyplot interface. Additional kwargs will be passed to the Figure init function.


If you are creating many figures, make sure you explicitly call pyplot.close on the figures you are not using, because this will enable pyplot to properly clean up the memory.

rcParams defines the default values, which can be modified in the matplotlibrc file.

Examples using matplotlib.pyplot.figure