| [ Web Proxy ] |
| Viewing: https://matplotlib.org/stable/api/_as_gen/../../devel/MEP/../../users/../api/legend_api.html | [Back] [Original] |
matplotlib.legend#The legend module defines the Legend class, which is responsible for drawing legends associated with Axes and/or figures.
Important
It is unlikely that you would ever create a Legend instance manually.
Most users would normally create a legend via the legend
function. For more details on legends there is also a legend guide.
The Legend class is a container of legend handles and legend texts.
The legend handler map specifies how to create legend handles from artists
(lines, patches, etc.) in the Axes or figures. Default legend handlers are
defined in the legend_handler module. While not all artist
types are covered by the default legend handlers, custom legend handlers can be
defined to support arbitrary objects.
See the :ref`<legend_guide>` for more information.
Bases: DraggableOffsetBox
Wrapper around a Legend to support mouse dragging.
LegendThe Legend instance to wrap.
Use blitting for faster image composition. For details see FuncAnimation.
If "loc", update the loc parameter of the legend upon finalizing. If "bbox", update the bbox_to_anchor parameter.
Bases: Artist
Place a legend on the figure/axes.
Axes or FigureThe artist that contains the legend.
Artist or tuple of Artist)A list of Artists (lines, patches) to be added to the legend.
A list of labels to show next to the artists. The length of handles and labels should be the same. If they are not, they are truncated to the length of the shorter list.
List of Artist objects added as legend entries.
Added in version 3.7.
rcParams["legend.loc"] (default: 'best') for Axes, 'upper right' for FigureThe location of the legend.
The string locations place the legend at the corresponding position within the bounding box, which by default is the full axes/figure area. The bounding box can be changed via bbox_to_anchor.
The positions are visualized below:
+--------------+--------------+---------------+
| 'upper left' |'upper center'| 'upper right' |
+--------------+--------------+---------------+
|'center left' | 'center' |'center right' |
+--------------+--------------+---------------+
| 'lower left' |'lower center'| 'lower right' |
+--------------+--------------+---------------+
The string 'best' places the legend at the location, among the nine
locations defined so far, with the minimum overlap with other drawn
artists. This currently takes into account most, but not all, artists
added to the Axes via plotting functions. In particular it does not consider
inset axes, titles, or axis labels.
The computation of the best position can be expensive for plots with large amounts of data. If speed becomes a concern, you may may benefit from providing a specific location.
The location can also be a 2-tuple giving the coordinates of the lower-left corner of the legend in axes/figure coordinates (in which case bbox_to_anchor will be ignored).
For back-compatibility, 'center right' (but no other location) can also
be spelled 'right', and each "string" location can also be given as a
numeric value:
Location String |
Location Code |
|---|---|
'best' (Axes only) |
0 |
'upper right' |
1 |
'upper left' |
2 |
'lower left' |
3 |
'lower right' |
4 |
'right' |
5 |
'center left' |
6 |
'center right' |
7 |
'lower center' |
8 |
'upper center' |
9 |
'center' |
10 |
If a figure is using the constrained layout manager, the string codes of the loc keyword argument can get better layout behaviour using the prefix 'outside'. There is ambiguity at the corners, so 'outside upper right' will make space for the legend above the rest of the axes in the layout, and 'outside right upper' will make space on the right side of the layout. In addition to the values of loc listed above, we have 'outside right upper', 'outside right lower', 'outside left upper', and 'outside left lower'. See Legend guide for more details.
BboxBase, 2-tuple, or 4-tuple of floatsBox that is used to position the legend in conjunction with loc. This is an advanced option for free placement of the legend. For most use cases, loc alone is sufficient.
Defaults to axes.bbox (if called as a method to Axes.legend) or
figure.bbox (if figure.legend).
Bbox coordinates are interpreted in the coordinate system given by
bbox_transform, with the default transform
Axes or Figure coordinates, depending on which legend is called.
If a 4-tuple or BboxBase is given, then it specifies the bbox
(x, y, width, height) that the legend is placed in.
To put the legend in the best location in the bottom right
quadrant of the Axes (or figure):
loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
A 2-tuple (x, y) places the corner of the legend specified by loc at
x, y. For example, to put the legend's upper right-hand corner in the
center of the Axes (or figure) the following keywords can be used:
loc='upper right', bbox_to_anchor=(0.5, 0.5)
For more details on legend positioning, see the Legend guide.
The number of columns that the legend has.
For backward compatibility, the spelling ncol is also supported but it is discouraged. If both are given, ncols takes precedence.
FontProperties or dictThe font properties of the legend. If None (default), the current
matplotlib.rcParams will be used.
The font size of the legend. If the value is numeric the size will be the absolute font size in points. String values are relative to the current default font size. This argument is only used if prop is not specified.
rcParams["legend.labelcolor"] (default: 'None')The color of the text in the legend. Either a valid color string (for example, 'red'), or a list of color strings. The labelcolor can also be made to match the color of the line or marker using 'linecolor', 'markerfacecolor' (or 'mfc'), or 'markeredgecolor' (or 'mec').
Labelcolor can be set globally using rcParams["legend.labelcolor"] (default: 'None'). If None,
use rcParams["text.color"] (default: 'black').
rcParams["legend.numpoints"] (default: 1)The number of marker points in the legend when creating a legend
entry for a Line2D (line).
rcParams["legend.scatterpoints"] (default: 1)The number of marker points in the legend when creating
a legend entry for a PathCollection (scatter plot).
[0.375, 0.5, 0.3125]The vertical offset (relative to the font size) for the markers
created for a scatter plot legend entry. 0.0 is at the base the
legend text, and 1.0 is at the top. To draw all markers at the
same height, set to [0.5].
rcParams["legend.markerscale"] (default: 1.0)The relative size of legend markers compared to the originally drawn ones.
If True, legend marker is placed to the left of the legend label. If False, legend marker is placed to the right of the legend label.
If True, the legend labels are displayed in reverse order from the input. If False, the legend labels are displayed in the same order as the input.
Added in version 3.7.
rcParams["legend.frameon"] (default: True)Whether the legend should be drawn on a patch (frame).
rcParams["legend.fancybox"] (default: True)Whether round edges should be enabled around the FancyBboxPatch which
makes up the legend's background.
rcParams["legend.shadow"] (default: False)Whether to draw a shadow behind the legend.
The shadow can be configured using Patch keywords.
Customization via rcParams["legend.shadow"] (default: False) is currently not supported.
rcParams["legend.framealpha"] (default: 0.8)The alpha transparency of the legend's background.
If shadow is activated and framealpha is None, the default value is
ignored.
rcParams["legend.facecolor"] (default: 'inherit')The legend's background color.
If "inherit", use rcParams["axes.facecolor"] (default: 'white').
rcParams["legend.edgecolor"] (default: '0.8')The legend's background patch edge color.
If "inherit", use rcParams["axes.edgecolor"] (default: 'black').
rcParams["legend.linewidth"] (default: None)The legend's background patch edge linewidth.
If None, use rcParams["patch.linewidth"] (default: 1.0).
Added in version 3.11.
If mode is set to "expand" the legend will be horizontally
expanded to fill the Axes area (or bbox_to_anchor if defines
the legend's size).
TransformThe transform for the bounding box (bbox_to_anchor). For a value
of None (default) the Axes'
matplotlib.axes.Axes.transAxes transform will be used.
The legend's title. Default is no title (None).
FontProperties or dictThe font properties of the legend's title. If None (default), the
title_fontsize argument will be used if present; if title_fontsize is
also None, the current rcParams["legend.title_fontsize"] (default: None) will be used.
rcParams["legend.title_fontsize"] (default: None)The font size of the legend's title. Note: This cannot be combined with title_fontproperties. If you want to set the fontsize alongside other font properties, use the size parameter in title_fontproperties.
The alignment of the legend title and the box of entries. The entries are aligned as a single block, so that markers always lined up.
rcParams["legend.borderpad"] (default: 0.4)The fractional whitespace inside the legend border, in font-size units.
rcParams["legend.labelspacing"] (default: 0.5)The vertical space between the legend entries, in font-size units.
rcParams["legend.handlelength"] (default: 2.0)The length of the legend handles, in font-size units.
rcParams["legend.handleheight"] (default: 0.7)The height of the legend handles, in font-size units.
rcParams["legend.handletextpad"] (default: 0.8)The pad between the legend handle and text, in font-size units.
rcParams["legend.borderaxespad"] (default: 0.5)The pad between the Axes and legend border, in font-size units.
rcParams["legend.columnspacing"] (default: 2.0)The spacing between columns, in font-size units.
The custom dictionary mapping instances or types to a legend
handler. This handler_map updates the default handler map
found at matplotlib.legend.Legend.get_legend_handler_map.
Whether the legend can be dragged with the mouse.
Test whether the artist contains the mouse event.
MouseEventWhether any values are within the radius.
An artist-specific dictionary of details of the event context, such as which points are contained in the pick radius. See the individual Artist subclasses for details.
Draw the Artist (and its children) using the given renderer.
This has no effect if the artist is not visible (Artist.get_visible
returns False).
RendererBase subclass.Notes
This method is overridden in the Artist subclasses.
Return the global default handler map, shared by all legends.
Return a legend handler from legend_handler_map that corresponds to orig_handler.
legend_handler_map should be a dictionary object (that is returned by the get_legend_handler_map method).
It first checks if the orig_handle itself is a key in the
legend_handler_map and return the associated value.
Otherwise, it checks for each of the classes in its
method-resolution-order. If no matching key is found, it
returns None.
Get the artist's bounding box in display space, taking clipping into account.
RendererBase, optionalRenderer used to draw the figure (i.e. fig.canvas.get_renderer()).
Bbox or NoneThe enclosing bounding box (in figure pixel coordinates), or None if clipping results in no intersection.
See also
Artist.get_window_extentGet the artist bounding box, ignoring clipping.
Get the artist's bounding box in display space, ignoring clipping.
The bounding box's width and height are non-negative.
Subclasses should override for inclusion in the bounding box "tight" calculation. Default is to return an empty bounding box at 0, 0.
Warning
The extent can change due to any changes in the transform stack, such as changing the Axes limits, the figure size, the canvas used (as is done when saving a figure), or the DPI.
Relying on a once-retrieved window extent can lead to unexpected behavior in various cases such as interactive figures being resized or moved to a screen with different dpi, or figures that look fine on screen render incorrectly when saved to file.
To get accurate results you may need to manually call
savefig or draw_without_rendering to have
Matplotlib compute the rendered size.
RendererBase, optionalRenderer used to draw the figure (i.e. fig.canvas.get_renderer()).
See also
Artist.get_tightbboxGet the artist bounding box, taking clipping into account.
Set multiple properties at once.
a.set(a=A, b=B, c=C)
is equivalent to
a.set_a(A)
a.set_b(B)
a.set_c(C)
In addition to the full property names, aliases are also supported, e.g.
set(lw=2) is equivalent to set(linewidth=2), but it is an error
to pass both simultaneously.
The order of the individual setter calls matches the order of parameters
in set(). However, most properties do not depend on each other so
that order is rarely relevant.
Supported properties are
Property
Description
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image
{'center', 'left', 'right'}.
float or None
bool
BboxBaseor tuple
BboxBaseor Nonebool
Patch or (Path, Transform) or None
bool
bool
str
bool
object
str or pair of floats, default:
rcParams["legend.loc"](default:'best') for Axes, 'upper right' for Figurebool
unknown
list of
AbstractPathEffectNone or bool or float or callable
bool
(scale: float, length: float, randomness: float)
bool or None
str
str
bool
float
Set the alignment of the legend title and the box of entries.
The entries are aligned as a single block, so that markers always lined up.
Set the bbox that the legend will be anchored to.
BboxBase or tupleThe bounding box can be specified in the following ways:
A BboxBase instance
A tuple of (left, bottom, width, height) in the given
transform (normalized axes coordinate if None)
A tuple of (left, bottom) where the width and height will be
assumed to be zero.
None, to remove the bbox anchoring, and use the parent bbox.
Transform, optionalA transform to apply to the bounding box. If not specified, this will use a transform to the bounding box of the parent.
Set the global default handler map, shared by all legends.
Enable or disable mouse dragging support of the legend.
Whether mouse dragging is enabled.
Use blitting for faster image composition. For details see FuncAnimation.
The legend parameter to be changed when dragged:
'loc': update the loc parameter of the legend
'bbox': update the bbox_to_anchor parameter of the legend
DraggableLegend or NoneIf state is True this returns the DraggableLegend helper
instance. Otherwise this returns None.
Set the location of the legend.
Added in version 3.8.
rcParams["legend.loc"] (default: 'best') for Axes, 'upper right' for FigureThe location of the legend.
The string locations place the legend at the corresponding position within the bounding box, which by default is the full axes/figure area. The bounding box can be changed via bbox_to_anchor.
The positions are visualized below:
+--------------+--------------+---------------+
| 'upper left' |'upper center'| 'upper right' |
+--------------+--------------+---------------+
|'center left' | 'center' |'center right' |
+--------------+--------------+---------------+
| 'lower left' |'lower center'| 'lower right' |
+--------------+--------------+---------------+
The string 'best' places the legend at the location, among the nine
locations defined so far, with the minimum overlap with other drawn
artists. This currently takes into account most, but not all, artists
added to the Axes via plotting functions. In particular it does not consider
inset axes, titles, or axis labels.
The computation of the best position can be expensive for plots with large amounts of data. If speed becomes a concern, you may may benefit from providing a specific location.
The location can also be a 2-tuple giving the coordinates of the lower-left corner of the legend in axes/figure coordinates (in which case bbox_to_anchor will be ignored).
For back-compatibility, 'center right' (but no other location) can also
be spelled 'right', and each "string" location can also be given as a
numeric value:
Location String |
Location Code |
|---|---|
'best' (Axes only) |
0 |
'upper right' |
1 |
'upper left' |
2 |
'lower left' |
3 |
'lower right' |
4 |
'right' |
5 |
'center left' |
6 |
'center right' |
7 |
'lower center' |
8 |
'upper center' |
9 |
'center' |
10 |
If a figure is using the constrained layout manager, the string codes of the loc keyword argument can get better layout behaviour using the prefix 'outside'. There is ambiguity at the corners, so 'outside upper right' will make space for the legend above the rest of the axes in the layout, and 'outside right upper' will make space on the right side of the layout. In addition to the values of loc listed above, we have 'outside right upper', 'outside right lower', 'outside left upper', and 'outside left lower'. See Legend guide for more details.
Set legend title and title style.
The legend title.
font_manager.FontProperties or str or pathlib.PathThe font properties of the legend title.
If a str, it is interpreted as a fontconfig pattern parsed by
FontProperties. If a pathlib.Path, it is interpreted as the
absolute path to a font file.
Update the global default handler map, shared by all legends.
| Web Proxy Viewer | New URL | Original Page |