2015-09-09 12 views
6

Possiedo una raccolta di dati associati da cui viene generata una serie di coppie di numeri di mare. Poiché tutti i raccoglitori hanno le stesse etichette, ma non i nomi dei raccoglitori, ho bisogno di annotare i disegni a coppie con il nome del contenitore 'n' sotto in modo da poterli associare successivamente ai loro contenitori.Come annotare i paia di mare?

import seaborn as sns 
groups = data.groupby(pd.cut(data['Lat'], bins)) 
for n,g in groups: 
    p = sns.pairplot(data=g, hue="Label", palette="Set2", 
       diag_kind="kde", size=4, vars=labels) 

Ho notato nella documentazione che Seaborn utilizza o è costruita su Matplotlib. Non sono stato in grado di capire come annotare la legenda a sinistra o fornire un titolo sopra o sotto i grafici accoppiati. Qualcuno può fornire esempi di riferimenti alla documentazione su come aggiungere testo arbitrario a quelle tre aree di un complotto?

+2

Prova 'p .fig.text' – mwaskom

+0

Dovresti convertire il tuo commento in una risposta in modo che altre persone possano trovarlo più facilmente – Stedy

+1

Grazie Stedy. Non ero sicuro del modo corretto di fornire soluzioni. Ho rimosso il commento e modificato la risposta. – EBo

risposta

10

Dopo aver seguito il suggerimento di mwaskom utilizzare matplotlib.text() (grazie), sono stato in grado di ottenere quanto segue per funzionare come previsto:

p = sns.pairplot(data=g, hue="Label", palette="Set2", 
      diag_kind="kde", size=4, vars=labels) 
#bottom labels 
p.fig.text(0.33, -0.01, "Bin: %s"%(n), ha ='left', fontsize = 15) 
p.fig.text(0.33, -0.04, "Num Points: %d"%(len(g)), ha ='left', fontsize = 15) 

e altre funzionalità utili:

# title on top center of subplot 
p.fig.suptitle('this is the figure title', verticalalignment='top', fontsize=20) 

# title above plot 
p.fig.text(0.33, 1.02,'Above the plot', fontsize=20) 

# left and right of plot 
p.fig.text(0, 1,'Left the plot', fontsize=20, rotation=90) 
p.fig.text(1.02, 1,'Right the plot', fontsize=20, rotation=270) 

# an example of a multi-line footnote 
p.fig.text(0.1, -0.08, 
    'Some multiline\n' 
    'footnote...', 
     fontsize=10) 
Problemi correlati