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

如何为非ggplot绘制的R基础箱线图添加中位数数值标注

R 箱线图添加中位数标注的实现方法

你可以直接捕获boxplot()函数的返回结果,它自带了各分组的中位数、四分位数等统计值,再配合text()函数就能快速添加标注,完整修改后代码如下:

# 绘制箱线图同时保存统计结果
bp_res <- boxplot(ndvi_pct_sep~edge_direction, 
              data= data_sample, 
              subset = edge_direction %in% c(64,4, 1,16),
              ylab="NDVI2028-2016", 
              xlab="Forest edge direction",
              names=c("north", "south", "east", "west"))

# 给每个箱线添加中位数标注
text(
  # x轴位置对应4个箱线的顺序坐标
  x = 1:length(bp_res$names),
  # y轴位置取各分组中位数数值
  y = bp_res$stats[3, ],
  # 标注内容为保留2位小数的中位数,可按需调整精度
  labels = round(bp_res$stats[3, ], 2),
  # 标注展示在中位数线上方,避免遮挡箱线
  pos = 3,
  # 可自定义标注颜色、字号等样式
  col = "darkred",
  cex = 0.9
)

参数调整说明:

  • 如果标注和中位数线重叠,可给y值添加偏移量,例如改为y = bp_res$stats[3, ] + 0.03,偏移量大小根据你的y轴数值范围调整即可
  • 不需要保留小数的话直接去掉round()函数即可
  • 可修改pos参数调整标注位置:1为下方、2为左侧、4为右侧

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:04