怎么绘制带误差线的图?R语言ggplot2 & ggpubr来解决
卖萌控的博客
点击这里进入电脑版页面!体验更好
怎么绘制带误差线的图?R语言ggplot2 & ggpubr来解决
2022-11-20 萌小白


误差线通常用于统计或科学数据中,显示潜在的误差或相对于系列中每个数据标志的不确定程度。一般通用的误差线为标准差(平均偏差)或标准误差。



今天介绍两种使用R语言添加误差线的方法,分别是大家常用的ggplot2和基于它的ggpubr。



方法A



首先介绍大家比较熟悉的ggplot2



第一步:包的安装和数据准备



这里使用R中的范例数据集:ToothGrowth。它描述了维他命C对Guinea猪牙齿生长的影响。采取两种不同的处理方式(orange
juice (OJ) or ascorbic acid (VC)),分别对应三种不同的剂量(Vitamin C (0.5, 1, and 2
mg))。



install.packages("ggplot2")



library(ggplot2)



df <- ToothGrowth



head(df)查看载入的数据,格式如下:






统计数据均值、标准差、标准误等利用aggregate()函数计算,为绘图做准备。



mean<-aggregate(df$len,by=list(df$supp,df$dose),FUN=mean) #计算均值



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



N<-aggregate(df$len,by=list(df$supp,df$dose),FUN=length) #计算个数



data<-data.frame(mean,sd=sd$x,N=N$x)#合并数据框



colnames(data)=c("supp","dose","len","sd","N")



data$se <- data$sd / sqrt(data$N) #计算标准误



查看统计数据:






注:画图前将dose列的类型更改为factor型



data$dose =as.factor(data$dose)



这是因为如果dose是数值型向量将会作为连续型数据进行处理,而因子型变量则会被作为离散型数据进行处理。



第二步:画图



2.1标准差——基础形式



ggplot(data, aes(x=dose, y=len, fill=supp))+



geom_bar(position=position_dodge(), color="black",stat="identity",width=.6)+



geom_errorbar(aes(ymin=len-sd,ymax=len+sd),width=.2, position=position_dodge(.6))






2.2标准差——只保留上方误差棒



ggplot(data, aes(x=dose, y=len, fill=supp))+



geom_bar(position=position_dodge(), color="black",stat="identity",width=.6)+



geom_errorbar(aes(ymin=len, ymax=len+sd),width=.2,position=position_dodge(.6))






2.3标准误——基础形式



ggplot(data, aes(x=dose, y=len, fill=supp))+



geom_bar(position=position_dodge(), color="black",stat="identity",width=.6)+



geom_errorbar(aes(ymin=len-se, ymax=len+se),width=.2,position=position_dodge(.6))






还可以通过调节其他参数,绘制不同风格图片。



方法B



第二种方法ggpubr是基于ggplot2的可视化包,它的绘制风格更符合期刊对图片的要求。



第一步:包的安装和数据准备



install.packages("ggpubr")



#或者install the latest version from GitHub as follow:



if(!require(devtools))



install.packages("devtools")



devtools::install_github("kassambara/ggpubr")



library(ggpubr)



df <- ToothGrowth



第二步:画图






2.1标准差——基础形式



ggbarplot(df, x = "dose", y = "len", add = c("mean_sd",
"jitter"),color = "supp", palette = "jco", position =
position_dodge(1.0))









2.2标准差——只保留上方误差棒



ggbarplot(df, x = "dose", y = "len", add = c("mean_sd", "jitter"),
error.plot = "upper_errorbar",color = "supp", palette = "jco", position =
position_dodge(1.0))






2.3标准误——基础形式



ggbarplot(df, x = "dose", y = "len", add = c("mean_se",
"jitter"),color = "supp", palette = "jco", position =
position_dodge(1.0))






总结



两种方法都可以实现误差线图的绘制,ggpubr的优点在于无需对数据进行统计处理,整体来说更为方便。



撰稿:谭迪



转自:锐翌基因

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容