2016-04-12 2 views
14

Это кажется тривиальным вопросом, но я искал какое-то время и не могу найти ответа. Это также похоже на то, что должно быть стандартной частью этих пакетов. Кто-нибудь знает, существует ли стандартный способ включения статистической аннотации между участками распределения в морском саду?Как вставить статистические аннотации (звезды или p-значения) в графики matplotlib/seaborn?

Например, между двумя коробками или морскими скоплениями?

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

+1

вам нужно вытаскивать, лежащая в основе Matplotlib Axes объект и использование Axes.text или Axes.annotate –

+0

Есть ли у вас пример R для сравнения? (MVCE! Дайте нам общий набор данных с кодом и объяснение того, что вы хотели получить.) – cphlewis

+0

Хороший пример того, что я считаю https://github.com/jbmouret/matplotlib_for_papers – thescoop

ответ

18

Вот как добавить статистическую аннотацию к Seaborn коробки участку:

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

А вот результат: box plot annotated

Смежные вопросы