如何在GGPLOT2绘制的柱状图顶部添加计数标签
ggplot2柱状图顶部添加计数标签解决方案
你当前遇到的问题核心是geom_text的统计逻辑、映射参数需要和geom_bar保持对齐,直接使用以下调整后的代码即可实现需求:
ggplot(data = sf_crime)+ geom_bar(aes(x=day_of_week, y=..prop.., group=1), stat = "count", fill ="forestgreen", color = "gold") + geom_text( aes( x = day_of_week, # 文本位置在柱子顶部稍上方,避免重叠,偏移量可根据实际显示效果调整 y = ..prop.. + 0.01, label = ..count.., group = 1 ), stat = "count", size = 3.5 )
关键参数说明
group = 1:必须和geom_bar的分组配置保持一致,保证计算的是全局维度的占比和对应计数,不会出现按工作日单独计算占比的错误stat = "count":和geom_bar的统计逻辑匹配,直接复用count统计生成的内置变量..count..(单工作日案件数)、..prop..(单工作日案件占比),无需提前对数据集做汇总y = ..prop.. + 0.01:控制文本的垂直位置,如果你希望标签放在柱子内部,可以改成y = ..prop.. - 0.01,同时添加vjust = 1参数实现顶部对齐- 如果你需要同时显示占比和计数,可以把
label参数改成paste0(round(..prop..*100,1), "%\n", ..count..),即可在标签内同时展示百分比数值和案件计数
内容的提问来源于stack exchange,提问作者Andyy Hu
相关产品推荐
相关产品推荐

