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
相关产品推荐
相关产品推荐

