误差棒可以表示样本标准差,也可以表示样本标准误。
导入库:
import pandas as pd
自定义用来绘制带误差棒(样本标准差或样本标准误)的柱状图:
def col(y, x, face, df, errprbar='std') : print(ggplot(df.groupby([x,face])[y]\.agg(['mean','std', 'sem']).reset_index(),aes(y='mean', x=x))+ geom_errorbar( aes(ymin=f'mean - {errprbar}', ymax=f'mean + {errprbar}'), width=.2 )+ geom_col() + theme_bw()+ facet_wrap(f' ~ {face}')+ labs(y= y, x= x)+ theme(axis_text_x=element_text(angle=45)))
导入待分析的df:
df = pd.DataFrame({'age': [25, 30, 35, 40, 45, 27, 33, 38, 42, 50],'sex': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female', 'Male', 'Female', 'Male', 'Female'],'group': ['A', 'B', 'A', 'B', 'A', 'A', 'B', 'A', 'B', 'A']})# df为:age sex group
0 25 Male A
1 30 Female B
2 35 Male A
3 40 Female B
4 45 Male A
5 27 Female A
6 33 Male B
7 38 Female A
8 42 Male B
9 50 Female A
绘制误差棒表示样本标准差的条形图
col('age', 'group', 'sex', df) # 默认误差棒表示样本标准差
col('age', 'group', 'sex', df, errprbar='std')
误差棒表示样本标准误
col('age', 'group', 'sex', df, errprbar='sem')