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

在R中能否结合ggpubr包的ggsummarystats()与stat_compare_means()?

问题:ggpubr中同时实现显著性标记与下方统计量展示

我用ggpubr的ggline绘图时,加stat_compare_means()能轻松做带统计检验的可视化。现在想完善图形:在图下方添加每组样本量、均值、置信区间这类基础统计量(ggsummarystats()可实现),同时在图上方显示p值显著性标记。但把ggline嵌套进ggsummarystats()后,单独调用stat_compare_means()会返回NULL。

可正常运行但无显著性标记的代码

df %>%
  ggsummarystats(x="TIMEPOINT",
         y="PROTEIN_CONCENTRATION",
         color="DISEASE",
         add=c("jitter", "mean_sd"),
         add.params = list(alpha=0.3),
         palette= "jco",
         ggfunc=ggline,
         summaries = c("n", "mean", "ci")
         )

添加stat_compare_means()后返回NULL的代码

df %>%
  ggsummarystats(x="TIMEPOINT",
         y="PROTEIN_CONCENTRATION",
         color="DISEASE",
         add=c("jitter", "mean_sd"),
         add.params = list(alpha=0.3),
         palette= "jco",
         ggfunc=ggline,
         summaries = c("n", "mean", "ci")
         )
stat_compare_means(aes(group = DISEASE), label = "p.signif", label.y = 40)

解决方案

要同时实现上方显著性标记和下方统计量展示,有两种可行方式:

方式1:将stat_compare_means整合到add参数中

直接把stat_compare_means()作为add参数的元素传入,和其他图层一起添加到图中:

df %>%
  ggsummarystats(x="TIMEPOINT",
         y="PROTEIN_CONCENTRATION",
         color="DISEASE",
         add=c("jitter", "mean_sd", 
               stat_compare_means(aes(group = DISEASE), label = "p.signif", label.y = 40)),
         add.params = list(alpha=0.3),
         palette= "jco",
         ggfunc=ggline,
         summaries = c("n", "mean", "ci")
         )

方式2:先保存图形对象再叠加图层

先把ggsummarystats()生成的图形存为对象,再用ggplot的+语法叠加stat_compare_means():

p <- df %>%
  ggsummarystats(x="TIMEPOINT",
         y="PROTEIN_CONCENTRATION",
         color="DISEASE",
         add=c("jitter", "mean_sd"),
         add.params = list(alpha=0.3),
         palette= "jco",
         ggfunc=ggline,
         summaries = c("n", "mean", "ci")
         )

p + stat_compare_means(aes(group = DISEASE), label = "p.signif", label.y = 40)

说明

  • 单独调用stat_compare_means()返回NULL是因为它没有绑定到任何ggplot对象,必须和已有的图形对象结合才能生效。
  • 两种方式都能实现需求,方式2更适合需要对图形做后续多次调整的场景。

内容的提问来源于stack exchange,提问作者c_dinosaur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:14:58