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")
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")
Risposte:
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):
suptitle
ha anche un y
parametro. Questo ha funzionato per me:g.fig.suptitle('foo', y=1.05)
col_wrap
come allora sia la figura che l'ultima sottotrama degli assi (in basso a destra) erediteranno lo stesso titolo.
In ipython notebook, questo ha funzionato per me!
sns.plt.title('YOUR TITLE HERE')
plt
tramite il sns
pacchetto è stato deprecato nella 0.8.1. Questo dovrebbe essere fatto usandoplt.title('YOUR TITLE HERE')
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('Title', fontsize=16)
Maggiori informazioni qui: http://matplotlib.org/api/figure_api.html
plt.suptitle("Title")
o
plt.title("Title")
Questo ha funzionato per me.
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")
plt.suptitle()
?
plt.suptitle()
modifica anche gli ultimi assi e la figura principale.
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)
plt.subplots_adjust(top=0.8)
posto ditop=0.9
.