如何在ggplot2绘制的柱状图中添加分组总和作为文本标签
错误原因
- 你预先计算的
size是独立的分组汇总数据框,默认情况下ggplot会从当前传入的原始df中读取映射变量,二者行数不一致,且原始df中没有你要的总和列,无法直接映射。 - 你给汇总表命名为
size,但汇总表内的求和结果列名为total,不存在名为size的字段,映射逻辑错误。
修改方案
仅需要将geom_text部分替换为以下代码即可:
geom_text(data = size, aes(y = total, label = total), hjust = -0.2)
额外说明:新增的hjust = -0.2参数是为了配合coord_flip()让标签显示在柱子右侧,避免和柱体重叠,你可以根据显示效果调整数值大小。
如果你希望柱子按总和大小排序生效,还需要将ggplot(aes(x=group, y=total))改为ggplot(aes(x=name, y=total)),否则之前写的fct_reorder排序代码不会生效。
内容的提问来源于stack exchange,提问作者SHIRLEEN
相关产品推荐
相关产品推荐

