2016-04-12 43 views
14

To wydaje się banalne pytanie, ale szukałem przez chwilę i nie mogę znaleźć odpowiedzi. Wydaje się również, że powinna to być standardowa część tych pakietów. Czy ktokolwiek wie, czy istnieje standardowy sposób uwzględnienia adnotacji statystycznych między działkami dystrybucji u ptaków morskich?Jak wstawić adnotacje statystyczne (gwiazdki lub wartości p) do matplotlib/seaborn poletek?

Na przykład między dwoma pudełkami lub plamami?

Example: the yellow distribution is significantly different than the others (by wilcoxon - how can i display that visually?

+1

trzeba wyciągnąć bazowe Osie matplotlib obiekt i wykorzystać Axes.text lub Axes.annotate –

+0

Czy zdarzyło się, że masz przykład R do porównania? (MVCE! Daj nam wspólny zestaw danych z kodem i wyjaśnienie, co chciałeś uzyskać.) – cphlewis

+0

Dobry przykład tego, co uważam za https://github.com/jbmouret/matplotlib_for_papers – thescoop

Odpowiedz

18

Oto jak dodać adnotację statystycznych działce Seaborn nadwozia:

import seaborn as sns, matplotlib.pyplot as plt 

tips = sns.load_dataset("tips") 
sns.boxplot(x="day", y="total_bill", data=tips, palette="PRGn") 

# statistical annotation 
x1, x2 = 2, 3 # columns 'Sat' and 'Sun' (first column: 0, see plt.xticks()) 
y, h, col = tips['total_bill'].max() + 2, 2, 'k' 
plt.plot([x1, x1, x2, x2], [y, y+h, y+h, y], lw=1.5, c=col) 
plt.text((x1+x2)*.5, y+h, "ns", ha='center', va='bottom', color=col) 

plt.show() 

i tu wynik: box plot annotated