matplotlib.axes.Axes.legend #
- Achsen. Legende ( * args , ** kwargs ) [Quelle] #
Platziere eine Legende auf den Äxten.
Rufsignaturen:
legend() legend(handles, labels) legend(handles=handles) legend(labels)
Die Anrufsignaturen entsprechen den folgenden unterschiedlichen Verwendungsmöglichkeiten dieser Methode:
1. Automatische Erkennung der Elemente, die in der Legende angezeigt werden sollen
Die der Legende hinzuzufügenden Elemente werden automatisch bestimmt, wenn Sie keine zusätzlichen Argumente übergeben.
In diesem Fall werden die Etiketten vom Künstler übernommen.
set_label()
Sie können sie entweder bei der Erstellung des Künstlers oder durch Aufrufen der Methode für den Künstler angeben :ax.plot([1, 2, 3], label='Inline label') ax.legend()
oder:
line, = ax.plot([1, 2, 3]) line.set_label('Label via method') ax.legend()
Notiz
Bestimmte Künstler können von der automatischen Auswahl der Legendenelemente ausgeschlossen werden, indem ein Label verwendet wird, das mit einem Unterstrich „_“ beginnt. Eine Zeichenfolge, die mit einem Unterstrich beginnt, ist die Standardbezeichnung für alle Künstler, sodass ein Aufruf
Axes.legend
ohne Argumente und ohne manuelles Festlegen der Bezeichnungen dazu führt, dass keine Legende gezeichnet wird.2. Explizite Auflistung der Künstler und Labels in der Legende
Um die volle Kontrolle darüber zu haben, welche Künstler einen Legendeneintrag haben, ist es möglich, ein Iterable von Legend Artists gefolgt von einem Iterable von Legend Labels zu übergeben:
ax.legend([line1, line2, line3], ['label1', 'label2', 'label3'])
3. Explizite Auflistung der Künstler in der Legende
Dies ist ähnlich wie 2, aber die Labels werden aus den Label-Eigenschaften des Künstlers übernommen. Beispiel:
line1, = ax.plot([1, 2, 3], label='label1') line2, = ax.plot([1, 2, 3], label='label2') ax.legend(handles=[line1, line2])
4. Beschriften vorhandener Plotelemente
Entmutigt
Von dieser Aufrufsignatur wird abgeraten, da die Beziehung zwischen Plotelementen und Labels nur durch ihre Reihenfolge implizit ist und leicht verwechselt werden kann.
Um eine Legende für alle Künstler auf einer Achse zu erstellen, rufen Sie diese Funktion mit einer iterierbaren Zeichenkette auf, eine für jedes Legendenelement. Zum Beispiel:
ax.plot([1, 2, 3]) ax.plot([5, 6, 7]) ax.legend(['First line', 'Second line'])
- Parameter :
- behandelt die Folge von
Artist
, optional Eine Liste von Künstlern (Linien, Patches), die der Legende hinzugefügt werden sollen. Verwenden Sie dies zusammen mit Etiketten , wenn Sie die volle Kontrolle darüber benötigen, was in der Legende angezeigt wird, und der oben beschriebene automatische Mechanismus nicht ausreicht.
Die Länge von Griffen und Etiketten sollte in diesem Fall gleich sein. Wenn dies nicht der Fall ist, werden sie auf die kleinere Länge gekürzt.
- Etikettenliste von str, optional
Eine Liste von Labels, die neben den Künstlern angezeigt werden sollen. Verwenden Sie dies zusammen mit Griffen , wenn Sie die volle Kontrolle über die in der Legende angezeigten Elemente benötigen und der oben beschriebene automatische Mechanismus nicht ausreicht.
- behandelt die Folge von
- Rückgaben :
- Andere Parameter :
- loc str oder Gleitkommapaar, Standard:
rcParams["legend.loc"]
(Standard:'best'
) ('best' für Achsen, 'upper right' für Zahlen) Der Ort der Legende.
Die Saiten platzieren die Legende an der entsprechenden Ecke der Achsen/Figur.
'upper left', 'upper right', 'lower left', 'lower right'
Die Saiten platzieren die Legende in der Mitte der entsprechenden Kante der Achsen/Figur.
'upper center', 'lower center', 'center left', 'center right'
Die Schnur
'center'
platziert die Legende in der Mitte der Achsen/Figur.Die Zeichenfolge
'best'
platziert die Legende an der Position unter den bisher definierten neun Positionen mit der minimalen Überschneidung mit anderen gezeichneten Künstlern. Diese Option kann bei Diagrammen mit großen Datenmengen ziemlich langsam sein; Ihre Plotgeschwindigkeit kann von der Angabe eines bestimmten Standorts profitieren.Die Position kann auch ein 2-Tupel sein, das die Koordinaten der unteren linken Ecke der Legende in Achsenkoordinaten angibt (in diesem Fall wird bbox_to_anchor ignoriert).
Aus Gründen der Abwärtskompatibilität kann (aber kein anderer Ort) auch geschrieben werden , und jeder "Zeichenfolge"-Ort kann auch als numerischer Wert angegeben werden:
'center right'
'right'
Standortzeichenfolge
Ortscode
'Beste'
0
'oben rechts'
1
'Oben links'
2
'Unten links'
3
'rechts unten'
4
'Rechts'
5
'Mitte links'
6
'Mitte rechts'
7
'untere Mitte'
8
'obere Mitte'
9
'Center'
10
- bbox_to_anchor
BboxBase
, 2-Tupel oder 4-Tupel von Floats Box, die verwendet wird, um die Legende in Verbindung mit loc zu positionieren . Standardmäßig
axes.bbox
(wenn als Methode zu aufgerufenAxes.legend
) oderfigure.bbox
(wennFigure.legend
). Dieses Argument ermöglicht eine beliebige Platzierung der Legende.Bbox-Koordinaten werden in dem von bbox_transform angegebenen Koordinatensystem interpretiert , mit den Standardtransformationsachsen oder Figurenkoordinaten, je nachdem, welche
legend
aufgerufen wird.Wenn ein 4-Tupel oder
BboxBase
angegeben ist, dann gibt es die Box an , in der die Legende platziert wird. Um die Legende an der besten Stelle im unteren rechten Quadranten der Achsen (oder Abbildungen) zu platzieren:(x, y, width, height)
loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
Ein 2-Tupel platziert die durch loc angegebene Ecke der Legende bei x, y. Um beispielsweise die obere rechte Ecke der Legende in die Mitte der Achsen (oder Abbildungen) zu setzen, können die folgenden Schlüsselwörter verwendet werden:
(x, y)
loc='upper right', bbox_to_anchor=(0.5, 0.5)
- ncols int, Standard: 1
Die Anzahl der Spalten, die die Legende hat.
Aus Gründen der Abwärtskompatibilität wird die Schreibweise ncol ebenfalls unterstützt, es wird jedoch davon abgeraten. Wenn beide angegeben sind, hat ncols Vorrang.
- prop Keine oder
matplotlib.font_manager.FontProperties
oder dict Die Schrifteigenschaften der Legende. Bei None (Standard) wird der Strom
matplotlib.rcParams
verwendet.- fontsize int oder {'xx-klein', 'x-klein', 'klein', 'mittel', 'groß', 'x-groß', 'xx-groß'}
Die Schriftgröße der Legende. Wenn der Wert numerisch ist, ist die Größe die absolute Schriftgröße in Punkt. Zeichenfolgenwerte sind relativ zur aktuellen Standardschriftgröße. Dieses Argument wird nur verwendet, wenn prop nicht angegeben ist.
- labelcolor str oder list, default:
rcParams["legend.labelcolor"]
(default:'None'
) Die Farbe des Textes in der Legende. Entweder eine gültige Farbzeichenfolge (z. B. „rot“) oder eine Liste von Farbzeichenfolgen. Die Etikettenfarbe kann auch mit 'linecolor', 'markerfacecolor' (oder 'mfc') oder 'markeredgecolor' (oder 'mec') an die Farbe der Linie oder Markierung angepasst werden.
Labelcolor kann global mit gesetzt werden
rcParams["legend.labelcolor"]
(default:'None'
). Wenn keine, verwendenrcParams["text.color"]
Sie (Standard:'black'
).- numpoints int, Standard:
rcParams["legend.numpoints"]
(Standard:1
) Die Anzahl der Markierungspunkte in der Legende beim Erstellen eines Legendeneintrags für eine
Line2D
(Linie).- Streupunkte int, Standard:
rcParams["legend.scatterpoints"]
(Standard:1
) Die Anzahl der Markierungspunkte in der Legende beim Erstellen eines Legendeneintrags für ein
PathCollection
(Streudiagramm).- scatteryoffsets Iterierbar von Floats, Standard:
[0.375, 0.5, 0.3125]
Der vertikale Versatz (relativ zur Schriftgröße) für die Markierungen, die für einen Streudiagramm-Legendeneintrag erstellt wurden. 0,0 steht ganz unten im Legendentext und 1,0 ganz oben. Um alle Markierungen auf derselben Höhe zu zeichnen, stellen Sie auf ein
[0.5]
.- Markerscale Float, Standard:
rcParams["legend.markerscale"]
(Standard:1.0
) Die relative Größe der Legendenmarkierungen im Vergleich zu den ursprünglich gezeichneten.
- markerfirst bool, Standard: True
Wenn True , wird die Legendenmarkierung links von der Legendenbeschriftung platziert. Bei False wird die Legendenmarkierung rechts neben der Legendenbeschriftung platziert.
- frameon bool, Standard:
rcParams["legend.frameon"]
(Standard:True
) Ob die Legende auf einem Patch (Frame) gezeichnet werden soll.
- fancybox bool, Standard:
rcParams["legend.fancybox"]
(Standard:True
) Ob runde Kanten um die aktiviert werden sollen, die
FancyBboxPatch
den Hintergrund der Legende bilden.- shadow bool, Standard:
rcParams["legend.shadow"]
(Standard:False
) Ob man einen Schatten hinter die Legende zeichnet.
- framealpha Float, Standard:
rcParams["legend.framealpha"]
(Standard:0.8
) Die Alpha-Transparenz des Hintergrunds der Legende. Wenn Shadow aktiviert ist und framealpha auf , wird
None
der Standardwert ignoriert.- facecolor "erben" oder Farbe, Standard:
rcParams["legend.facecolor"]
(Standard:'inherit'
) Die Hintergrundfarbe der Legende. Wenn
"inherit"
, verwendenrcParams["axes.facecolor"]
Sie (Standard:'white'
).- edgecolor "erben" oder color, default:
rcParams["legend.edgecolor"]
(default:'0.8'
) Die Randfarbe des Hintergrundpatches der Legende. Wenn
"inherit"
, verwenden Sie takercParams["axes.edgecolor"]
(Standard:'black'
).- Modus {"Erweitern", Keine}
Wenn der Modus auf eingestellt ist,
"expand"
wird die Legende horizontal erweitert, um den Achsenbereich auszufüllen (oder bbox_to_anchor , wenn die Größe der Legende definiert wird).- bbox_transform Keine oder
matplotlib.transforms.Transform
Die Transformation für den Begrenzungsrahmen ( bbox_to_anchor ). Bei einem Wert von
None
(Standard) wird die Axes-transAxes
Transformation verwendet.- title str oder None
Der Titel der Legende. Standard ist kein Titel (
None
).- title_fontproperties Keine oder
matplotlib.font_manager.FontProperties
oder dict Die Schrifteigenschaften des Legendentitels. Wenn None (Standard), wird das Argument title_fontsize verwendet, falls vorhanden; wenn title_fontsize ebenfalls None ist, wird die aktuelle
rcParams["legend.title_fontsize"]
(Standard:None
) verwendet.- title_fontsize int oder {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, Standard:
rcParams["legend.title_fontsize"]
(Standard:None
) Die Schriftgröße des Legendentitels. Hinweis: Dies kann nicht mit title_fontproperties kombiniert werden . Wenn Sie die Schriftgröße zusammen mit anderen Schrifteigenschaften festlegen möchten, verwenden Sie den Größenparameter in title_fontproperties .
- Ausrichtung {'zentriert', 'links', 'rechts'}, Standard: 'zentriert'
Die Ausrichtung des Legendentitels und des Eintragsfelds. Die Einträge sind als ein einziger Block ausgerichtet, sodass Markierungen immer aneinandergereiht sind.
- Borderpad Float, Standard:
rcParams["legend.borderpad"]
(Standard:0.4
) Der gebrochene Leerraum innerhalb des Legendenrahmens in Einheiten der Schriftgröße.
- Labelspace Float, Standard:
rcParams["legend.labelspacing"]
(Standard:0.5
) Der vertikale Abstand zwischen den Legendeneinträgen in Einheiten der Schriftgröße.
- handlelength float, Standard:
rcParams["legend.handlelength"]
(Standard:2.0
) Die Länge der Legendenziehpunkte in Einheiten der Schriftgröße.
- handleheight Float, Standard:
rcParams["legend.handleheight"]
(Standard:0.7
) Die Höhe der Legendenziehpunkte in Einheiten der Schriftgröße.
- handletextpad float, Standard:
rcParams["legend.handletextpad"]
(Standard:0.8
) Das Pad zwischen dem Legendengriff und dem Text in Einheiten der Schriftgröße.
- borderaxespad float, Standard:
rcParams["legend.borderaxespad"]
(Standard:0.5
) Das Pad zwischen den Achsen und dem Legendenrand in Einheiten der Schriftgröße.
- Spaltenabstand Float, Standard:
rcParams["legend.columnspacing"]
(Standard:2.0
) Der Abstand zwischen Spalten in Einheiten der Schriftgröße.
- handler_map dict oder None
Das benutzerdefinierte Wörterbuch ordnet Instanzen oder Typen einem Legendenhandler zu. Diese handler_map aktualisiert die unter
matplotlib.legend.Legend.get_legend_handler_map
.
- loc str oder Gleitkommapaar, Standard:
Siehe auch
Anmerkungen
Einige Künstler werden von dieser Funktion nicht unterstützt. Einzelheiten finden Sie in der Anleitung zur Legende.
Beispiele
Beispiele mit matplotlib.axes.Axes.legend
#
Gruppiertes Balkendiagramm mit Beschriftungen
Zeichnen kategorialer Variablen
Stile für gestrichelte Linien anpassen
Linien mit angekreuztem Pfadeffekt
Streudiagramme mit benutzerdefinierten Symbolen
Streudiagramme mit einer Legende
Zeichnen Sie eine Vertrauensellipse eines zweidimensionalen Datensatzes
Verwenden von Histogrammen zum Zeichnen einer kumulativen Verteilung
Die Funktion Histogramm (hist) mit mehreren Datensätzen
Einen Kuchen und einen Donut beschriften
Komponieren benutzerdefinierter Legenden
Legende mit vordefinierten Labels
Rendern mathematischer Gleichungen mit TeX
Zeichnen Sie 2D-Daten auf einem 3D-Plot
Benutzerdefinierter Tick-Formatierer für Zeitreihen
Gruppenbalkendiagramm mit Einheiten
Leitfaden für eingeschränktes Layout