误差线通常用于统计或科学数据中,显示潜在的误差或相对于系列中每个数据标志的不确定程度。一般通用的误差线为标准差(平均偏差)或标准误差。
今天介绍两种使用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的优点在于无需对数据进行统计处理,整体来说更为方便。
撰稿:谭迪
转自:锐翌基因
- 本文固定链接: https://maimengkong.com/image/1297.html
- 转载请注明: : 萌小白 2022年11月20日 于 卖萌控的博客 发表
- 百度已收录