ggplot直方图添加条形总数标签及分组标签位置调整求助
解决ggplot直方图标签位置问题
核心问题修正:填充分组计数标签位置
原代码中geom_text未设置位置参数,导致标签无法对应到填充分组的正确位置。只需添加position = position_stack(vjust = 0.5),让标签居中显示在每个堆叠的填充块内。
附加需求:添加条形总数标签
通过stat_summary统计每个条形的总计数,并将标签放置在条形顶端(因coord_flip()翻转坐标,实际显示在条形右侧)。
完整修改后代码
# 请替换x和fill的参数为你数据集里的实际列名 ggplot(my_dataset, aes(x = Município, fill = 你的填充列名)) + stat_count() + scale_fill_viridis_d(option = "viridis", direction = 1) + labs(x = "Município", y = "Contagem", title = "Histogram with flipped coordinates") + coord_flip() + theme_minimal() + facet_wrap(vars(RTDT)) + # 显示每个填充分组的计数(非核心需求,可删除) geom_text(stat = "count", aes(label = ..count..), position = position_stack(vjust = 0.5), size = 3) + # 显示每个条形的总数标签(核心需求) stat_summary(fun = sum, aes(label = after_stat(y), y = after_stat(y)), geom = "text", vjust = -0.5, size = 3.5, fontface = "bold")
代码说明
position_stack(vjust = 0.5):将分组计数标签垂直居中于每个填充块,解决位置错位问题。stat_summary(fun = sum):计算每个x轴类别(Município)的总计数,after_stat(y)调用计算结果作为标签内容,vjust = -0.5调整标签位置,避免与分组标签重叠。- 若不需要分组计数,直接删除对应的
geom_text部分即可。
内容的提问来源于stack exchange,提问作者Diogo Bichon
相关产品推荐
相关产品推荐

