公海赌船网址-公海赌船555000

2018-11-05浏览量:6552

怎么绘制带误差线的图?R语言ggplot2 & ggpubr来解决

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

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

统计数据均值、标准差、标准误等利用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.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))

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

方法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))

下一篇

版权所有 公海赌船555000 沪ICP备16022951号