如何对多分组变量使用stat_compare_means()实现显著性差异标注
小鼠多周体重组间差异可视化解决方案
需求说明
- 实验设计:小鼠分为A(参照组)、B、C三个处理组,连续24周监测体重
- 核心诉求:绘制各周体重的组间统计比较图,匹配差异化显著性标识,直观体现两个结论:
- B组12周后体重恢复至和A组无统计学差异
- C组体重全程和A组存在显著差异
原有代码问题
你当前使用的代码仅做每周三组的整体ANOVA检验,只能输出全局显著性,无法单独展示B、C组分别和参照组A的两两比较结果,也没法区分不同组别对比的显著性标识。
原有代码如下:
BW %>% gather(Week, Weight, "0":"24") %>% group_by(Group, Week) %>% ggline(x = "Week", y = "Weight", add = "mean_se", color = "Group") + stat_compare_means(aes(group = Group), label = "p.signif", method = "anova")
原有运行效果:
优化后实现方案
修改思路
- 指定仅做B vs A、C vs A两组两两比较,不需要全局ANOVA检验
- 两组对比的显著性标识纵向偏移,避免重叠
- 开启无显著性结果自动隐藏,自动体现B组12周后恢复正常的特征
优化后代码
library(tidyverse) library(ggpubr) # 数据预处理,转换为长表 BW_long <- BW %>% gather(Week, Weight, "0":"24") %>% mutate(Week = as.numeric(Week)) ggline(BW_long, x = "Week", y = "Weight", add = "mean_se", color = "Group", palette = c("A" = "gray30", "B" = "#2874A6", "C" = "#CB4335")) + # 自定义组别颜色提升辨识度 # B组vsA组显著性标识,向上偏移0.4个单位,隐藏无差异结果 stat_compare_means(comparisons = list(c("A", "B")), label = "p.signif", method = "t.test", tip.length = 0, vjust = -0.4, hide.ns = TRUE) + # C组vsA组显著性标识,向上偏移0.8个单位,显示所有显著性结果 stat_compare_means(comparisons = list(c("A", "C")), label = "p.signif", method = "t.test", tip.length = 0, vjust = -0.8, hide.ns = FALSE)
内容的提问来源于stack exchange,提问作者SKJ
相关产品推荐
相关产品推荐

