在 swarmplot 上绘制错误条
Plotting errorbars on top of swarmplot
我将如何在 seaborn 文档中的这个群图之上绘制均值和误差条?
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 之类的东西,我想不出一种简单的方法来绘制误差线,这对我想做的事情来说太花哨了.
您没有提及您希望误差线涵盖的内容,但您可以在 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()
我将如何在 seaborn 文档中的这个群图之上绘制均值和误差条?
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 之类的东西,我想不出一种简单的方法来绘制误差线,这对我想做的事情来说太花哨了.
您没有提及您希望误差线涵盖的内容,但您可以在 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()