最近看到很多error bar图,其实感觉和箱型图表达的意思一样,但是更简洁一些,之后我就去了解了一下。
以下时是利用ggplot中的geom_errorbar绘制error bar图,首先要计算一下每个组的mean和sd,这个用mean()和sd()就能完成,之后就是绘图。
rm(list = ls())
options(stringsAsFactors = F)
#构建data.frame
data=data.frame(name=c('A','B','C','D'), #准备的数据分组
sd=c(0.04,0.03,0.025,0.035), #标准差
mean=c(0.4,0.7,0.5,0.6)) #均值
library(ggplot2)
ggplot()+
geom_errorbar(data=data,aes(x=name,ymin=mean-sd, #error bar
ymax=mean+sd,color=name),width=0.2)+
scale_y_continuous(limits = c(0,1))
结果如下
可以看到结果过于简陋,之后就是进行一些美化,比如加mean点。
ggplot()+
geom_errorbar(data=data,aes(x=name,ymin=mean-sd,
ymax=mean+sd,color=name),width=0.2)+
scale_y_continuous(limits = c(0,1))+
geom_point(data=data,aes(x=name,y=mean,color=name),size=2)+
theme_classic()+
labs(x='',y='')
加个趋势线,换个好看的颜色
ggplot()+
geom_errorbar(data=data,aes(x=name,ymin=mean-sd,
ymax=mean+sd,color=name),width=0.2)+
scale_y_continuous(limits = c(0,1))+
geom_point(data=data,aes(x=name,y=mean,color=name),size=2)+
theme_classic()+
geom_line(data=data,aes(x=name,y=mean,group=1),color='orange')+
labs(x='',y='')+
scale_color_aaas()
ok了!