matplotlib.pyplot.figlegend #
- matplotlib.pyplot. figlegend ( * args , ** kwargs ) [fonte] #
Metti una legenda sulla figura.
Firme di chiamata:
figlegend() figlegend(handles, labels) figlegend(handles=handles) figlegend(labels)
Le firme di chiamata corrispondono ai seguenti diversi modi di utilizzare questo metodo:
1. Rilevamento automatico degli elementi da mostrare nella legenda
Gli elementi da aggiungere alla legenda vengono determinati automaticamente, quando non si passano argomenti extra.
In questo caso le etichette sono prese dall'artista. Puoi specificarli durante la creazione dell'artista o chiamando il
set_label()
metodo sull'artista:ax.plot([1, 2, 3], label='Inline label') fig.figlegend()
o:
line, = ax.plot([1, 2, 3]) line.set_label('Label via method') fig.figlegend()
Linee specifiche possono essere escluse dalla selezione automatica dell'elemento della legenda definendo un'etichetta che inizia con un carattere di sottolineatura. Questa è l'impostazione predefinita per tutti gli artisti, quindi chiamando
Figure.legend
senza argomenti e senza impostare le etichette manualmente non verrà disegnata alcuna legenda.2. Elencando esplicitamente gli artisti e le etichette nella legenda
Per il pieno controllo di quali artisti hanno una voce di legenda, è possibile passare rispettivamente un iterabile di artisti leggendari seguito da un iterabile di etichette leggendarie:
fig.figlegend([line1, line2, line3], ['label1', 'label2', 'label3'])
3. Elencare esplicitamente gli artisti nella legenda
È simile a 2, ma le etichette sono prese dalle proprietà dell'etichetta dell'artista. Esempio:
line1, = ax1.plot([1, 2, 3], label='label1') line2, = ax2.plot([1, 2, 3], label='label2') fig.figlegend(handles=[line1, line2])
4. Etichettatura degli elementi della trama esistenti
Scoraggiato
Questa firma di chiamata è sconsigliata, perché la relazione tra gli elementi della trama e le etichette è solo implicita nel loro ordine e può essere facilmente confusa.
Per creare una legenda per tutti gli artisti su tutti gli assi, chiama questa funzione con un iterabile di stringhe, una per ogni elemento della legenda. Per esempio:
fig, (ax1, ax2) = plt.subplots(1, 2) ax1.plot([1, 3, 5], color='blue') ax2.plot([2, 4, 6], color='red') fig.figlegend(['the blues', 'the reds'])
- Parametri :
- gestisce l' elenco di
Artist
, facoltativo Un elenco di Artisti (linee, patch) da aggiungere alla legenda. Usalo insieme alle etichette , se hai bisogno del pieno controllo su quanto mostrato nella legenda e il meccanismo automatico sopra descritto non è sufficiente.
La lunghezza delle maniglie e delle etichette dovrebbe essere la stessa in questo caso. Se non lo sono, vengono troncati alla lunghezza minore.
- etichette elenco di str, facoltativo
Una lista di etichette da mostrare accanto agli artisti. Usalo insieme alle maniglie , se hai bisogno di un controllo completo su quanto mostrato nella legenda e il meccanismo automatico sopra descritto non è sufficiente.
- gestisce l' elenco di
- Resi :
- Altri parametri :
- loc str o coppia di float, default:
rcParams["legend.loc"]
(default:'best'
) ('best' per assi, 'upper right' per figure) Il luogo della leggenda.
Le stringhe posizionano la legenda nell'angolo corrispondente degli assi/figura.
'upper left', 'upper right', 'lower left', 'lower right'
Le stringhe posizionano la legenda al centro del bordo corrispondente degli assi/figura.
'upper center', 'lower center', 'center left', 'center right'
La stringa
'center'
posiziona la legenda al centro degli assi/figura.La stringa
'best'
colloca la legenda nella posizione, tra le nove posizioni finora definite, con la minima sovrapposizione con altri artisti disegnati. Questa opzione può essere piuttosto lenta per grafici con grandi quantità di dati; la tua velocità di tracciamento potrebbe trarre vantaggio dalla fornitura di una posizione specifica.La posizione può anche essere una tupla di 2 elementi che fornisce le coordinate dell'angolo in basso a sinistra della legenda in coordinate degli assi (nel qual caso bbox_to_anchor verrà ignorato).
Per compatibilità con le versioni precedenti, (ma nessun'altra posizione) può anche essere digitato e ogni posizione "stringa" può anche essere fornita come valore numerico:
'center right'
'right'
Stringa di posizione
Codice Località
'migliore'
0
'In alto a destra'
1
'superiore sinistro'
2
'in basso a sinistra'
3
'in basso a destra'
4
'Giusto'
5
'centrosinistra'
6
'centrodestra'
7
'centro inferiore'
8
'centro superiore'
9
'centro'
10
- bbox_to_anchor
BboxBase
, 2 tuple o 4 tuple di float Riquadro utilizzato per posizionare la legenda insieme a loc . Il valore predefinito
axes.bbox
è (se chiamato come metodo aAxes.legend
) ofigure.bbox
(ifFigure.legend
). Questo argomento consente il posizionamento arbitrario della legenda.Le coordinate di Bbox vengono interpretate nel sistema di coordinate fornito da bbox_transform , con le coordinate di trasformazione predefinite Axes o Figure, a seconda di quale
legend
viene chiamato.Se viene fornito un 4-tuple o
BboxBase
, specifica la bbox in cui è posizionata la legenda. Per posizionare la legenda nella posizione migliore nel quadrante in basso a destra degli assi (o figura):(x, y, width, height)
loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
Una tupla di 2 elementi posiziona l'angolo della legenda specificata da loc in x, y. Ad esempio, per posizionare l'angolo in alto a destra della legenda al centro degli assi (o della figura) si possono utilizzare le seguenti parole chiave:
(x, y)
loc='upper right', bbox_to_anchor=(0.5, 0.5)
- ncols int, predefinito: 1
Il numero di colonne della legenda.
Per compatibilità con le versioni precedenti, anche l'ortografia ncol è supportata ma è sconsigliata. Se vengono forniti entrambi, ncols ha la precedenza.
- prop Nessuno o
matplotlib.font_manager.FontProperties
o dict Le proprietà del carattere della legenda. Se None (impostazione predefinita),
matplotlib.rcParams
verrà utilizzata la corrente.- fontsize int o {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
La dimensione del carattere della legenda. Se il valore è numerico, la dimensione sarà la dimensione assoluta del carattere in punti. I valori stringa sono relativi alla dimensione del carattere predefinita corrente. Questo argomento viene utilizzato solo se prop non è specificato.
- labelcolor str o lista, predefinito:
rcParams["legend.labelcolor"]
(predefinito:'None'
) Il colore del testo nella legenda. Una stringa di colore valida (ad esempio, "rosso") o un elenco di stringhe di colore. Il labelcolor può anche essere fatto in modo che corrisponda al colore della linea o del marker utilizzando 'linecolor', 'markerfacecolor' (o 'mfc') o 'markeredgecolor' (o 'mec').
Labelcolor può essere impostato globalmente usando
rcParams["legend.labelcolor"]
(default:'None'
). Se Nessuno, usarcParams["text.color"]
(predefinito:'black'
).- numpoints int, predefinito:
rcParams["legend.numpoints"]
(predefinito:1
) Il numero di punti indicatore nella legenda durante la creazione di una voce della legenda per una
Line2D
(linea).- punti di dispersione int, predefinito:
rcParams["legend.scatterpoints"]
(predefinito:1
) Il numero di punti indicatore nella legenda durante la creazione di una voce della legenda per un
PathCollection
(grafico a dispersione).- scatteryoffsets iterabile di float, default:
[0.375, 0.5, 0.3125]
L'offset verticale (relativo alla dimensione del carattere) per i marcatori creati per una voce della legenda del grafico a dispersione. 0.0 è alla base del testo della legenda e 1.0 è in cima. Per disegnare tutti i marcatori alla stessa altezza, impostare su
[0.5]
.- markerscale float, predefinito:
rcParams["legend.markerscale"]
(predefinito:1.0
) La dimensione relativa degli indicatori della legenda rispetto a quelli originariamente disegnati.
- markerfirst bool, predefinito: vero
Se True , l'indicatore della legenda viene posizionato a sinistra dell'etichetta della legenda. Se False , l'indicatore della legenda viene posizionato a destra dell'etichetta della legenda.
- frameon bool, predefinito:
rcParams["legend.frameon"]
(predefinito:True
) Se la legenda deve essere disegnata su una patch (frame).
- fancybox bool, predefinito:
rcParams["legend.fancybox"]
(predefinito:True
) Se i bordi arrotondati debbano essere abilitati intorno a
FancyBboxPatch
ciò che costituisce lo sfondo della legenda.- shadow bool, predefinito:
rcParams["legend.shadow"]
(predefinito:False
) Se disegnare un'ombra dietro la leggenda.
- framealpha float, predefinito:
rcParams["legend.framealpha"]
(predefinito:0.8
) La trasparenza alfa dello sfondo della legenda. Se shadow è attivato e framealpha è
None
, il valore predefinito viene ignorato.- facecolor "inherit" o colore, predefinito:
rcParams["legend.facecolor"]
(predefinito:'inherit'
) Il colore di sfondo della legenda. If
"inherit"
, usarcParams["axes.facecolor"]
(predefinito:'white'
).- edgecolor "inherit" o colore, predefinito:
rcParams["legend.edgecolor"]
(predefinito:'0.8'
) Il colore del bordo della patch di sfondo della legenda. If
"inherit"
, usa takercParams["axes.edgecolor"]
(predefinito:'black'
).- modalità {"espandi", nessuna}
Se mode è impostato su
"expand"
la legenda verrà espansa orizzontalmente per riempire l'area degli assi (o bbox_to_anchor se definisce la dimensione della legenda).- bbox_transform Nessuno o
matplotlib.transforms.Transform
La trasformazione per il riquadro di delimitazione ( bbox_to_anchor ). Per un valore di (predefinito) verrà utilizzata la trasformazione
None
degli assi .transAxes
- title str o Nessuno
Il titolo della leggenda. L'impostazione predefinita è nessun titolo (
None
).- title_fontproperties Nessuno o
matplotlib.font_manager.FontProperties
o dict Le proprietà del carattere del titolo della legenda. Se None (predefinito), verrà utilizzato l'argomento title_fontsize se presente; se anche title_fontsize è None, verrà utilizzato il valore corrente
rcParams["legend.title_fontsize"]
(predefinito: ).None
- title_fontsize int o {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, default:
rcParams["legend.title_fontsize"]
(default:None
) La dimensione del carattere del titolo della legenda. Nota: questo non può essere combinato con title_fontproperties . Se vuoi impostare fontsize insieme ad altre proprietà del font, usa il parametro size in title_fontproperties .
- allineamento {'center', 'left', 'right'}, default: 'center'
L'allineamento del titolo della legenda e la casella delle voci. Le voci sono allineate come un unico blocco, in modo che i marcatori siano sempre allineati.
- borderpad float, predefinito:
rcParams["legend.borderpad"]
(predefinito:0.4
) Lo spazio vuoto frazionario all'interno del bordo della legenda, in unità di dimensione del carattere.
- labelspace float, predefinito:
rcParams["legend.labelspacing"]
(predefinito:0.5
) Lo spazio verticale tra le voci della legenda, in unità della dimensione del carattere.
- handlelength float, predefinito:
rcParams["legend.handlelength"]
(predefinito:2.0
) La lunghezza delle maniglie della legenda, in unità della dimensione del carattere.
- handleheight float, predefinito:
rcParams["legend.handleheight"]
(predefinito:0.7
) L'altezza delle maniglie della legenda, in unità di dimensione del carattere.
- handletextpad float, predefinito:
rcParams["legend.handletextpad"]
(predefinito:0.8
) Il riquadro tra la maniglia della legenda e il testo, in unità di dimensione del carattere.
- borderaxespad float, predefinito:
rcParams["legend.borderaxespad"]
(predefinito:0.5
) Il pad tra gli assi e il bordo della legenda, in unità di dimensione del carattere.
- colonne spaziatura float, predefinito:
rcParams["legend.columnspacing"]
(predefinito:2.0
) La spaziatura tra le colonne, in unità di dimensione del carattere.
- handler_map dict o Nessuno
Il dizionario personalizzato che esegue il mapping di istanze o tipi a un gestore di legende. Questo handler_map aggiorna la mappa del gestore predefinita trovata in
matplotlib.legend.Legend.get_legend_handler_map
.
- loc str o coppia di float, default:
Guarda anche
Appunti
Alcuni artisti non sono supportati da questa funzione. Vedere la guida Legenda per i dettagli.