如何为非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
相关产品推荐
相关产品推荐

