我如何在seaborn docs中绘制像这样的swarmplot上方的平均值和错误标记?
import matplotlib.pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
sns.swarmplot(x="day", y="total_bill", data=tips);
plt.show()
我无法找到一种简单的方法来绘制错误栏,而不使用errobar函数(没有显示所有数据)或使用boxplot等,这对于我想做的事情来说太过花哨了。 / p>
答案 0 :(得分:2)
您没有提到您想要覆盖的误差线,但您可以在swarmplot
之上绘制样本平均值±标准差,并仅使用plt.errorbar
到
mean = tips.groupby('day').total_bill.mean()
std = tips.groupby('day').total_bill.std() / np.sqrt(tips.groupby('day').total_bill.count())
sns.swarmplot(x='day', y='total_bill', data=tips, zorder=1)
plt.errorbar(range(len(mean)), mean, yerr=std)
plt.show()
留在seaborn
世界的另一个选择是sns.pointplot
,它会通过引导自动产生置信区间:
sns.swarmplot(x='day', y='total_bill', data=tips, zorder=1)
sns.pointplot(x='day', y='total_bill', data=tips, ci=68)
plt.show()