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

求助:在ggplot2中为单箱线图的离群值添加标签的方法

单箱线图中标记离群值的解决方案

优化离群值识别代码

首先简化mutate中的代码,dplyr环境下直接引用列名即可,无需额外指定数据框:

# 创建离群值识别函数
findoutlier <- function(x) {
  return(x < quantile(x, .25) - 1.5*IQR(x) | x > quantile(x, .75) + 1.5*IQR(x))
}

# 添加离群值标记列
performance_tibble <- performance_tibble %>%
  mutate(outlier = ifelse(findoutlier(Perc_Correct), Pt_ID, NA))

绘制带标记的箱线图

单箱线图虽然只定义了y轴,但ggplot默认会给x轴分配一个隐含的单一分类位置(对应x=1),只需在geom_text中指定这个x值即可:

ggplot(performance_tibble) +
  geom_boxplot(aes(y = Perc_Correct), outlier.colour = "red") +
  # 指定x=1对齐箱线图位置,用Perc_Correct作为y坐标,outlier作为标签
  geom_text(aes(x = 1, y = Perc_Correct, label = outlier), 
            na.rm = TRUE,  # 忽略非离群值的NA行
            hjust = -0.2) + # 调整标签位置到点的右侧,避免遮挡
  theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())

关键参数说明

  • x=1:对应单箱线图在x轴的默认位置,保证标签和离群点对齐
  • na.rm=TRUE:过滤掉outlier列中为NA的行,避免绘制空文本
  • hjust=-0.2:水平调整标签位置,让标签显示在离群点的右侧,可根据需要调整数值(比如改为1.2让标签在左侧)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:01:01