You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对多分组变量使用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")

原有运行效果:
原有代码运行效果图

优化后实现方案

修改思路

  1. 指定仅做B vs A、C vs A两组两两比较,不需要全局ANOVA检验
  2. 两组对比的显著性标识纵向偏移,避免重叠
  3. 开启无显著性结果自动隐藏,自动体现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:24:08