前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >绘制带误差bar的统计图

绘制带误差bar的统计图

原创
作者头像
爱学习的小明明
修改2020-09-27 10:56:18
1.2K0
修改2020-09-27 10:56:18
举报
文章被收录于专栏:R语言学习R语言学习

绘制带误差bar的统计图,关键点在于计算个统计量

df<-ToothGrowth #这里用的是R自带数据Toothgrowth

df$dose<-as.factor(df$dose) #需要将dose由numeric转化为factor

dataMean<-aggregate(df$len,by=list(df$supp,df$dose),mean) #一定要加list,分组计算均值

colnames(dataMean)<-c("supp","dose","mean") #将得到的均值dataframe列命名

dataMean
dataMean
dataStd
dataStd
合并后的dataframe
合并后的dataframe

dataStd<-aggregate(df$len,by=list(df$supp,df$dose),sd) #分组计算标准差

colnames(dataStd)<-c("supp","dose","sd")

nd<-merge(dataMean,dataStd,by=c("supp","dose"),all=T) #将均值和标准差按照相应的分组合并

ggplot(nd,aes(x=supp,y=mean,fill=dose))+

geom_bar(position=position_dodge(),color="black",width=0.4,stat='identity')+ #stat=dentity一定要有

geom_errorbar(aes(ymin=mean,ymax=mean+sd),width=0.3,position=position_dodge(0.4))+ #这里position_dodge(0.40与上面bar宽一至

scale_fill_manual(values=c("blue","red","green"))+

theme(

legend.position = "right",

axis.title.x=element_text(size=14),

axis.title.y = element_text(size=14),

panel.grid.major = element_blank(),

panel.grid.minor = element_blank(),

axis.line = element_line(colour = "black",size=0.5), #设置坐标轴线条颜色和粗细

axis.text=element_text(color="black",size=14)

)+

xlab('Supply')+

ylab('Length')+ #这里引号单双要注意

scale_y_continuous(breaks=seq(0,30,5),limits=c(0,30),expand=c(0,0)) #expand=c(0,0)让坐标从0开始

分版绘制

ggplot(nd,aes(x=supp,y=mean,fill=dose))+

geom_bar(position=position_dodge(),color="black",width=0.4,stat='identity')+ #stst=dentity一定要有

geom_errorbar(aes(ymin=mean,ymax=mean+sd),width=0.3,position=position_dodge(0.4))+#这里position_dodge(0.40与上面bar宽一至

scale_fill_manual(values=c("blue","red","green"))+

theme(

legend.position = "right",

axis.title.x=element_text(size=14),

axis.title.y = element_text(size=14),

panel.grid.major = element_blank(),

panel.grid.minor = element_blank(),

axis.line = element_line(colour = "black",size=0.5),

axis.text=element_text(color="black",size=14)

)+

xlab('Supply')+

ylab('Length')+ #这里引号单双要注意

scale_y_continuous(breaks=seq(0,30,5),limits=c(0,30),expand=c(0,0))+

facet_wrap(.~dose) #在原图上加这样一句即可

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绘制带误差bar的统计图,关键点在于计算个统计量
  • 分版绘制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档