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

