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

ggstatsplot中grouped_ggbetweenstats两组场景如何显示成对比较线

原因说明

ggstatsplot的grouped_ggbetweenstats预设了仅当x轴分组水平数量≥3时自动绘制成对比较显著性线;如果x轴只有2个水平,组间差异的统计结果(p值、效应量等)会直接展示在对应子图的副标题区域,不会额外生成比较线,属于包的正常设计逻辑,不是代码运行错误。

实现两组对比显示比较线的方法

函数返回的结果是ggplot对象的列表,你可以结合ggsignif包手动为每个子图添加显著性线,示例代码如下:

set.seed(123)
library(ggstatsplot)
library(ggsignif)
library(purrr)
library(patchwork)

# 生成基础绘图列表
plot_list <- grouped_ggbetweenstats(
  data = dplyr::filter(ggplot2::mpg, drv != "4", displ==2),
  x = year,
  y = hwy,
  grouping.var = drv,
  pairwise.comparisons = TRUE,
  pairwise.display = "all",
  p.adjust.method = "BH"
)

# 为每个子图添加比较线
plot_list <- map(plot_list, function(p) {
  p + geom_signif(
    comparisons = list(c("1999", "2008")),
    y_position = max(p$data$hwy) + 1.5, # 可根据实际数据调整线的高度
    tip_length = 0.01
  )
})

# 合并展示所有子图
wrap_plots(plot_list)

如果你需要和包自带的检验结果完全一致,可以从子图的labels$subtitle中提取已计算好的p值传入geom_signif的annotations参数,无需重复计算统计量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 14:06:03