matplotlib 在群集图顶部绘制误差条

mu0hgdu0  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(215)

我该如何在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之类的工具,我无法找到绘制错误条的简单方法,这对于我想做的事情来说太花哨了。

pdkcd3nj

pdkcd3nj1#

您没有提到您希望误差线覆盖的内容,但您可以在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()

另一个选择是sns.pointplot,它通过 Bootstrap 自动生成置信区间:

sns.swarmplot(x='day', y='total_bill', data=tips, zorder=1)
sns.pointplot(x='day', y='total_bill', data=tips, ci=68)
plt.show()

相关问题