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

ggboxplot绘图疑问:箱线图须线为何终止于箱体内部?

问题

使用ggpubr包的ggboxplot函数绘制箱线图时,发现须线终止于箱体内部,想了解这种情况是否正常、须线的计算方式,或是操作是否有误。

使用的代码如下:

stat.test <- DS1%>%group_by(PS)%>%
  t_test(y ~ x, paired = FALSE) %>%
  adjust_pvalue(method = "holm") %>%
  add_significance()
myplot <- ggboxplot(
  DS1, x = "x", y = "y",
  fill = "x", palette = c("#FF9333","#CCCCCC"), add="mean_sd", legend = "none",ylab = "y", xlab= "x",
  ggtheme = theme_pubr(border = TRUE)) +
  facet_wrap(~PS="free")+ 
  theme(axis.text = element_text( size = 12 ),
        axis.title = element_text( size = 15),
        strip.text = element_text(size = 15))
# Add statistical test p-values
stat.test <- stat.test %>% add_xy_position(x = "x")
myplot + stat_pvalue_manual(stat.test, label = "p.adj.signif")
解答
  • 这种情况是正常的,并非操作错误,而是由箱线图须线的默认计算逻辑导致的。
  • 须线的计算方式:ggboxplot底层依赖ggplot2的箱线图统计规则,默认须线的范围是**1.5倍四分位距(IQR)**内的最远数据点:
    • 箱体上下边界分别为下四分位数(Q1)和上四分位数(Q3),IQR = Q3 - Q1
    • 须线上限为min(数据最大值, Q3 + 1.5*IQR),下限为max(数据最小值, Q1 - 1.5*IQR)
    • 如果所有数据都落在Q1到Q3的范围内(即没有数据超出1.5倍IQR的范围),须线就会和箱体的上下边界重合,视觉上可能看起来像是终止在箱体内部。
  • 代码中的小问题:facet_wrap(~PS="free")的写法有误,正确的分面自由缩放写法应为facet_wrap(~PS, scales="free"),这个错误会影响分面的显示逻辑,但不会导致须线异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:25:23