Come aggiungere un titolo a Seaborn Facet Plot


95

Come aggiungo un titolo a questa trama Seaborne? Diamogli un titolo "IO SONO UN TITOLO".

tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")

tracciare

Risposte:


164

Dopo quelle righe:

plt.subplots_adjust(top=0.9)
g.fig.suptitle('THIS IS A TITLE, YOU BET') # can also get the figure from plt.gcf()

Se si aggiunge un sottotitolo senza regolare l'asse, i titoli delle sfaccettature di Seaborn si sovrappongono ad esso.

(Con dati diversi):

inserisci qui la descrizione dell'immagine


6
Questo ha funzionato per me, ma ho dovuto usare al plt.subplots_adjust(top=0.8)posto di top=0.9.
Mack

5
suptitleha anche un yparametro. Questo ha funzionato per me:g.fig.suptitle('foo', y=1.05)
trianta2

1
Questo non funziona se usi col_wrapcome allora sia la figura che l'ultima sottotrama degli assi (in basso a destra) erediteranno lo stesso titolo.
xApple

25

In ipython notebook, questo ha funzionato per me!

sns.plt.title('YOUR TITLE HERE')

10
Ho provato questo e ha aggiunto un titolo alla figura in basso a destra, non l'intera figura
crypdick

12
L'accesso plttramite il snspacchetto è stato deprecato nella 0.8.1. Questo dovrebbe essere fatto usandoplt.title('YOUR TITLE HERE')
Mack

2
AttributeError: il modulo 'seaborn' non ha attributo 'plt'
xApple

AttributeError: il modulo 'seaborn' non ha attributo 'plt'
seralouk


3

Quello che ha funzionato per me è stato:

sns.plt.suptitle('YOUR TITLE HERE')


2
AttributeError: il modulo 'seaborn' non ha attributo 'plt'
xApple

1
AttributeError: il modulo 'seaborn' non ha attributo 'plt'
seralouk

1
plt.suptitle("Title") 

o

plt.title("Title")

Questo ha funzionato per me.


0

Le risposte usano sns.plt.title()e sns.plt.suptitle()non funzionano più.

Invece, devi usare la title()funzione di matplotlib :

import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")

1
Questo non imposta il titolo nella posizione corretta per me.
Gabriel Romon

4
Hai provato plt.suptitle()?
crypdick

La tua risposta non funziona poiché influisce sul titolo dell'ultima sottotrama degli assi (in basso a destra). Il tuo suggerimento plt.suptitle()modifica anche gli ultimi assi e la figura principale.
xApple

0

Il titolo non sarà allineato al centro con i titoli della sottotrama. Per impostare la posizione del titolo è possibile utilizzare plt.suptitle("Title", x=center)

Nel mio caso, le mie sottotrame erano in una griglia 2x1, quindi sono stato in grado di utilizzare bbox = g.axes[0,0].get_position()per trovare il riquadro di delimitazione e quindicenter=0.5*(bbox.x1+bbox.x2)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.