1

我将如何在 seaborn 文档中的 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 等,我想不出一个简单的方法来绘制误差线,这对于我想做的事情来说太花哨了。

4

1 回答 1

3

你没有提到你希望你的误差线覆盖什么,但你可以在你的顶部绘制样本平均值±标准偏差,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()

<code>sns.swarmplot</code> 和 <code>plt.errorbar</code>

留在 的世界中的另一种选择seabornsns.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()

<code>sns.swarmplot</code> 和 <code>sns.pointplot</code>

于 2017-06-12T19:26:30.957 回答