本节来介绍如何通过ggplot2绘制带误差线的折线图,介绍2种方法一种传统方法&经典方法
加载R包
library(tidyverse)
library(ggsci)
library(patchwork)
传统方法
传统方法依然是先整理数据,之后添加相应的几何对象,整个过程规规矩矩,无任何亮点可言
p1 <- ToothGrowth %>%
mutate(dose=as.factor(dose)) %>%
group_by(dose,supp) %>%
summarise(mean=mean(len),
se = sqrt(var(len)/length(len)),
.groups = 'drop') %>%
ggplot(aes(dose,mean)) +
geom_line(aes(linetype=supp,group = supp,color=supp))+
geom_point(size=3,aes(color=supp))+
geom_errorbar(aes(ymin = mean-se,ymax =mean+se,
group = supp,color=supp),
width = 0.05)+
scale_color_nejm()+
theme_bw()+
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.background = element_blank(),
legend.key=element_blank())
经典方法
此方法使用了stat_summary函数,有了它我们再也不需要对数据先进行整理了,使用起来真是事半功倍,关于stat_summary的详细使用方法请参考下面2篇文档
通过ggplot2中stat_summary函数快速进行数据统计
揭开{ggplot2}中stat_图层的神秘面纱
p2 <- ToothGrowth %>%
mutate(dose=as.factor(dose)) %>%
group_by(dose,supp) %>%
ggplot(aes(x = dose,y =len,
group=supp,color=supp)) +
stat_summary(fun.y="mean",geom="point",size=3) +
stat_summary(fun.y="mean",geom="line") +
stat_summary(fun.data = "mean_se",geom = "errorbar",width=0.05)+
scale_color_nejm()+
theme_bw()+
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.background = element_blank(),
legend.key=element_blank())
喜欢的小伙伴欢迎关注我的公众号
R语言数据分析指南,持续分享数据可视化的经典案例及一些生信知识,希望对大家有所帮助