采用ggplot2绘制误差线需要对数据转换求得mean和sd(或se等),可以通过Rmisc包summarySE函数、dplyr包group_by与summarise两个函数等实现,添加p-value(或显著性标记)可采用ggpubr包,然而添加p-value无需数据转换。这样,ggplot2同时绘制误差线与p-value则需要采用多数据框,太过复杂。下面提供一个简单的一步到位法。
#先加载包 library(ggplot2); library(ggpubr) #加载数据集ToothGrowthdata("ToothGrowth")
tg <- ToothGrowth tg$dose = as.factor (tg$dose) head(tg)
p<- ggplot(tg, aes(x = dose, y = len, fill = supp)) + geom_bar(stat = "summary", fun.y = mean, color = "black", position = position_dodge()) + stat_summary(fun.data = 'mean_sd', geom = "errorbar", colour = "black", width = 0.25,position = position_dodge( .9))
执行stat_summary绘制误差线,亦可用mean_se等
添加p-value
#方差齐性检验,利用car下的Levene检验 library(car); library(plyr) dlply(tg, .(dose), summarise, p_value = (leveneTest(len ~ supp , center = mean))$`Pr(>F)` ) #不同dose下,Levene检验p值分别为0.052、0.149、0.129,表明各组总体方差相同(var.equal = TRUE)。 p + stat_compare_means(method = "t.test", method.args = list(var.equal = TRUE))
添加显著性标记
p + stat_compare_means(aes(label =..p.signif..), method = "t.test", method.args = list(var.equal = TRUE))
作者:逍遥尐生
链接:https://www.jianshu.com/p/1a3f7e5e6328
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦