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

如何修改R语言分组条形图标签并在条形上方显示数值?

解决方案

针对你提出的两个问题,修改后的完整代码及说明如下:

1. 自定义X轴分组标签

在barplot()函数中添加names.arg参数,传入自定义标签即可替换默认的barplot1等名称。

2. 在条形上方显示数值

barplot()会返回每个条形的中心x坐标,先将该结果存入变量,再用text()函数把对应数值标注在条形顶部,通过微调位置避免与条形重叠。

修改后的完整代码

barplot1=c(8,3,4,1) 
barplot2=c(18,11,11,13)
barplot3=c(39,42,42,45)
barplot4=c(26,30,31,34)
barplot5=c(9,13,12,7)
data <- data.frame(barplot1,barplot2,barplot3,barplot4,barplot5)
percantage <- 50

# 存储条形的x坐标
bp <- barplot(as.matrix(data),
        main="", yaxp=c(0, max(percantage), 5),
        col = c("#b62528","#f49401","#f9e536","#018404"),
        ylab="Percentage", xlab = "Elevation [m. a. s. l.]",
        beside=T,
        legend.text = c("CR","EN","VU","LC or NT"),
        # 自定义分组标签,可根据需求修改文本内容
        names.arg = c("0-1000", "1000-2000", "2000-3000", "3000-4000", "4000+"),
        args.legend=list(bty="n",horiz=F, x="topright", inset = c(- 0.05, -0.1)),
)

# 在条形顶部添加数值标签
text(bp, as.matrix(data) + 1, labels = as.character(as.matrix(data)), pos = 3)

关键改动说明

  • names.arg:直接替换X轴的分组名称,你可以把示例中的海拔区间改成任意需要的文本。
  • bp <- barplot(...):捕获条形的x坐标,为后续文本定位提供基准。
  • text()函数:as.matrix(data) + 1让文本在条形顶部上方1个单位(避免重叠),pos=3指定文本显示在坐标点的上方。

内容的提问来源于stack exchange,提问作者Sina Kh.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:55:20