2015-09-09 13 views
6

Mam kolekcję binned danych, z których generuję serię seaborn pairplots. Ponieważ wszystkie pojemniki mają te same etykiety, ale nie nazwy bin, muszę dodać adnotacje do parcel z nazwą bin "n" poniżej, aby później móc je skojarzyć z ich binami.Jak opisywać seaborn pairplots?

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) 

Zauważyłem w dokumentacji, że seaborn używa lub jest zbudowany na matplotlib. Nie byłem w stanie dowiedzieć się, jak opisać legendę po lewej stronie, lub podać tytuł powyżej lub poniżej sparowanych parceli. Czy każdy może podać przykłady wskaźników do dokumentacji dotyczącej dodawania dowolnego tekstu do tych trzech obszarów wykresu?

+2

Spróbuj 's .fig.text' – mwaskom

+0

Powinieneś zamienić swój komentarz na odpowiedź, aby inni mogli go łatwiej znaleźć. – Stedy

+1

Dzięki Stedy. Nie byłam pewna właściwego sposobu dostarczania rozwiązań. Usunąłem komentarz i zredagowałem odpowiedź. – EBo

Odpowiedz

10

Po ślad za sugestią mwaskom do wykorzystania matplotlib.text() (dzięki), udało mi się uzyskać następujące do pracy zgodnie z oczekiwaniami:

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) 

i inne użyteczne funkcje:

# 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)