如何在ggplot柱状图的条形上添加百分比符号?
解决ggplot柱状图添加百分比标签的问题
你的问题出在**geom_text的标签生成逻辑**上——之前用的labels=percent是给坐标轴刻度用的参数,不能直接作用于条形标签。下面是两种快速解决的方法:
方法1:用scales::percent()格式化标签
直接用scales包的格式化函数处理你的pct字段(注意pct是0-1的小数格式,不需要手动乘100),可以精准控制百分比的小数位数:
geom_text(aes(label = scales::percent(pct, accuracy = 1)), colour="red", size=3)
accuracy=1表示保留整数百分比,如果你需要一位小数,改成accuracy=0.1即可。
方法2:手动拼接百分号
如果不想依赖scales包,直接用字符串拼接生成带%的标签:
geom_text(aes(label = paste0(100*round(pct,2), "%")), colour="red", size=3)
替换你原代码里的geom_text行,就能得到带%符号的条形标签了。
内容的提问来源于stack exchange,提问作者Espejito
相关产品推荐
相关产品推荐

