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

如何在R语言ggplot柱状图上添加保留两位小数的百分比标签

ggplot柱状图百分比标签设置方法

你调用scales::percent()时没有正确配置scale和accuracy参数,才会出现格式不符的问题:

  • scales::percent()默认scale=100,会自动将输入数值乘以100后加百分号,你的Avg_Cost已经是乘以100后的百分比数值(比如5.3对应5.3%),所以需要设置scale=1避免重复换算
  • accuracy参数控制小数点保留位数,设置accuracy=0.01即可固定保留两位小数

修改后的完整可运行代码如下:

library(ggplot2)
df <- data.frame(Seller=c("Ad","Rt","Ra","Mo","Ao","Do"), 
                 Avg_Cost=c(5.30,3.72,2.91,2.64,1.17,1.10), 
                 Num=c(6:1))

plotB <- ggplot(df, aes(x = reorder(Seller, Avg_Cost), y = Avg_Cost)) + 
  # 原代码geom_col和geom_bar(stat="identity")功能重复,保留一个即可
  geom_col(width = 0.7, fill="steelblue") + 
  coord_flip() + 
  theme(panel.background = element_blank(), 
        axis.title.x = element_blank(),
        axis.title.y = element_blank()) +
  # 仅修改此处标签格式配置即可
  geom_text(aes(label=scales::percent(Avg_Cost, scale = 1, accuracy = 0.01)), 
            size=5, hjust=-.2 ) + 
  ylim(0,6)

plotB

如果你不想依赖scales包,也可以用基础字符拼接实现相同效果,将geom_text的label参数替换为paste0(round(Avg_Cost, 2), "%")即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 07:54:10