Posizione della leggenda di Matplotlib

Posizione della leggenda di Matplotlib

Matplotlib è un ottimo pacchetto di visualizzazione Python per grafici a array 2D. La leggenda è una sezione che definisce le parti del grafico. Legend () è un metodo nel pacchetto matplotlib che viene utilizzato per visualizzare una legenda sui grafici. Il parametro LOC nel metodo Legend () può essere utilizzato per indicare il posizionamento della legenda. Loc = "migliore" è il valore predefinito (in alto a sinistra). La legenda si trova nella posizione appropriata delle figure dai parametri migliori in alto a destra, in alto a sinistra, in basso a sinistra, in basso a destra, in basso a destra, al centro a sinistra, al centro inferiore, al centro a destra e al centro superiore. Le leggende della trama forniscono un contesto visivo mediante l'implementazione del bene ai componenti della trama.

In questo articolo, esaminiamo come personalizzare il posizionamento e l'estetica della leggenda in Matplotlib.

Posizione della leggenda

Il termine "loc" come parametro potrebbe essere utilizzato per indicare il posizionamento della legenda. In questo caso, vediamo il metodo di come localizziamo la leggenda.

Importa matplotlib.Pyplot come Plt
Importa Numpy come NP
Fig, Ax_dict = PLT.subplot_mosaic ([['top', 'top'], ['bottom', 'blank'],
vuoto_sentinel = "blank")
ax_dict ['top'].Plot ([2, 3, 4], etichetta = "etichetta")
ax_dict ['top'].Plot ([4, 3, 2], etichetta = "etichetta2")
ax_dict ['top'].Legend (bbox_to_anchor = (0., 1.02, 1., .102), loc = 'in basso a sinistra',
nCol = 2, modalità = "espandere", bondaxespad = 0.)
ax_dict ['in basso'].Plot ([2, 3, 4], etichetta = "etichetta")
ax_dict ['in basso'].Plot ([4, 3, 2], etichetta = "etichetta2")
ax_dict ['in basso'].Legend (bbox_to_anchor = (1.05, 1),
loc = 'in alto a sinistra', Bordaxespad = 0.)
Plt.spettacolo()

Il comando bbox_to_anchor ci consente molta flessibilità quando si tratta di posizionare manualmente le legende. Se vorremmo che la legenda degli assi apparisse nella parte superiore destra del modello piuttosto che nel bordo degli assi, forniamo semplicemente la posizione dell'angolo e la posizione tridimensionale.

Una leggenda viene inserita appena oltre la sottotrama e si espande a. Usiamo anche la scatola di delimitazione che è stata fornita. Una leggenda viene aggiunta a destra della sottotrama più piccola nel secondo grafico.

Specificare le informazioni sulla posizione

Il PLT.La funzione Legend (), che genera automaticamente una legenda per ogni punto di trama identificato, è il metodo più semplice per sviluppare una leggenda. Tuttavia, ci sono numerosi metodi per modificare tale leggenda. Possiamo definire la posizione e disabilitare il frame.

Importa matplotlib.Pyplot come Plt
Plt.stile.Usa ("classico")
Importa Numpy come NP
x = np.Linspace (0, 20, 2000)
Fig, ax = PLT.sottotrame ()
ascia.Trama (X, NP.sin (x), '-b', etichetta = 'senine')
ascia.Trama (X, NP.cos (x), '--r', etichetta = 'cosino')
ascia.axis ('uguale')
gamba = ascia.leggenda();
ascia.Legenda (loc = 'in alto a sinistra', frameon = false)
Fico
ascia.Legenda (frameon = false, loc = 'centrale inferiore', nCol = 3)
Fico
ascia.Legend (FancyBox = True, Framealpha = 1, Shadow = True, BorderPad = 2)
Fico

Per scoprire il numero di righe nella leggenda, dobbiamo utilizzare il comando "NCOL". Aggiungiamo anche una tonalità, regola la visibilità (valore alfa) del frame o modifichiamo la spaziatura attorno al contenuto utilizzando una scatola arrotondata (FancyBox).

Identificare gli elementi della leggenda

Per impostazione predefinita, la legenda comprende tutti gli elementi etichettati. Se non è quello che vogliamo, utilizzeremo gli elementi forniti dai comandi della trama per perfezionare quali componenti e titoli mostrano nella leggenda.

Importa matplotlib.Pyplot come Plt
Plt.stile.Usa ("classico")
Importa Numpy come NP
x = np.Linspace (0, 16, 2000)
Fig, ax = PLT.sottotrame ()
y = np.sin (x [:, np.newaxis] + np.pi * np.Arange (0, 2, 0.5))
linee = plt.Trama (x, y)
Plt.leggenda (linee [: 2], ['prima', 'secondo']);
Plt.trama (x, y [:, 0], etichetta = 'prima')
Plt.Plot (x, y [:, 1], etichetta = 'secondo')
Plt.trama (x, y [:, 2:])
Plt.leggenda (framealpha = 1, frameon = true);

Il PLT.La funzione Plot () può costruire numerose linee contemporaneamente e fornisce un elenco delle linee che sono state formate. Fornendo uno di questi a PLT.Legend (), possiamo indicare quali elementi localizzare e le etichette che vogliamo usare. La leggenda elimina qualsiasi elemento senza un attributo del titolo fornito per impostazione predefinita.

Leggende multiple

Quando si creano una trama, potremmo voler includere legende diverse all'interno dello stesso asse. Tuttavia, Matplotlib in qualche modo non rende questo semplice. Possiamo costruire una leggenda singolare solo per la trama generale usando il metodo della leggenda convenzionale.

Se vogliamo usare PLT.leggenda () o ascia.Legend () per costruire una seconda leggenda, quindi invocherà la prima. Possiamo farlo aggiungendo un artista leggenda dall'inizio e quindi aggiungendo esplicitamente il nuovo artista alla trama che utilizza l'ascia di livello inferiore.Aggiungi tecnica artista ().

Come notiamo, il metodo contiene solo una logica di base per stabilire un artista di leggende appropriato, che verrà quindi archiviato nell'attributo Legend_ e inserito nel grafico quando viene creata la trama.

Al di fuori della trama

Utilizziamo matplotlib per impedire a una cornice della legenda di essere troncata. Applicheremo bbox_extra_artists e bbox_inches per assicurarsi che la leggenda non venga ritagliata. Gli artisti bbox_extra indicano l'elenco di artisti che verrebbero presi in considerazione durante il calcolo della bbox stretta. Se bbox_inches sono regolati per essere compatti, verrà creata una bbox tesa per la figura.

Importa matplotlib.Pyplot come Plt
Importa Numpy come NP
x = np.Linspace (0, 20, 3)
y = np.cos (x)
y1 = np.exp (x)
Plt.trama (x, y, etichetta = "cos (x)")
Plt.trama (x, y1, etichetta = "exp (x)")
Legend_outside = plt.Legend (bbox_to_anchor = (1.05, 0.0),
loc = 'in basso a destra')
Plt.salvafig ('outside_legend.png ',
dpi = 100,
format = 'png',
bbox_extra_artists = (legend_outside,),
bbox_inches = 'stretto')
Plt.spettacolo()

Per l'analisi visiva, integriamo matplotlib.Pyplot come Plt. Quindi, per i metadati, includiamo Numpy come NP. Utilizziamo le funzioni di LinSpace (), cos () ed exp () per specificare le dimensioni dei dati. Stiamo usando il metodo trama () per disegnare il grafico. Utilizziamo la funzione Legend () con l'argomento bbox_to_anchor per aggiungere la leggenda dalla trama esterna. La trama viene quindi salvata come file PNG utilizzando il metodo Savefig (). Forniamo gli argomenti BBox_Extra_artists e Bbox_inches al metodo Savefig () per evitare che la leggenda venga troncata.

Conclusione

Impariamo alcuni metodi per regolare la posizione della legenda in Matplotlib in questo articolo. La posizione predefinita per la legenda è "migliore", ciò significa che Matplotlib identificherà una posizione per la legenda che impedisce di oscurare eventuali set di dati. Il parametro bbox_to_anchor () potrebbe anche essere utilizzato per individuare la legenda al di fuori del grafico. In questo articolo, abbiamo anche discusso del metodo per allegare titoli diversi ai componenti della trama che vogliamo mostrare sulla leggenda. Le predefinite della leggenda a volte non sono sufficienti per una particolare visualizzazione. Quindi, forse utilizzeremo i valori dei punti per illustrare aspetti specifici dei dati, quindi dovremo costruire una leggenda per rappresentarlo. Inoltre, ogni luogo di leggenda può essere indicato.