ggplot绘制柱状图如何将柱顶数值保留1位小数显示
ggplot2 柱状图柱顶数值保留1位小数修改方案
核心修改逻辑:柱顶标注的显示内容由geom_text()层的label映射参数控制,无需修改原始数据集,仅需在映射时对数值做四舍五入格式化即可。
完整修改后代码
CPUE1 <- CPUE CPUE1$Strecke <- factor (CPUE1$Strecke, levels = c('30/31', '14', '12', '10','1c','1bc', '1b')) ggplot(CPUE1, aes(x= Strecke, y= CPUE, fill = Strecke ))+ geom_bar(stat='identity', position = 'dodge')+ theme_minimal()+ # 仅修改label映射规则,对CPUE值四舍五入保留1位小数 geom_text(aes(label = round(CPUE, 1)), position=position_dodge(width=0.9), vjust=-0.25)+ scale_fill_manual(values = c( "12" = "green", "10"= "green", "1c" = "green", "14"= "red", "1b"= "red","1bc"= "red","30/31" = "red" ))
可选优化说明
- 如果你需要强制所有标注固定显示1位小数(例如整数值显示为
3.0而非3,格式更统一),可以将round(CPUE, 1)替换为sprintf("%.1f", CPUE)。 - 上述修改仅调整柱顶文本的展示格式,不会改变柱状图高度、分组配色、坐标轴设置等原有绘图效果。
内容的提问来源于stack exchange,提问作者LayZeDanaDeFoxy
相关产品推荐
相关产品推荐

