如何在ggplot2分组柱状图上方添加条形数值标签?
解决ggplot2分组柱状图添加计数标签的问题
你可以通过以下调整实现每个条形上方显示计数:
首先修正代码里的小错误,然后给geom_text匹配和geom_bar一致的分组偏移,同时设置标签的位置避免和柱子重叠:
ggplot(DF, aes(Participant.Type, ..count..)) + geom_bar(aes(fill=Sex), position = "dodge") + # 添加计数标签的关键代码 geom_text(aes(label = ..count..), position = position_dodge(width = 0.9), # 和geom_bar的dodge宽度匹配 stat = "count", # 明确使用count统计规则 vjust = -0.5, # 把标签往上移,避免和柱子顶部重叠 size = 3.5) + theme_classic() + ggtitle("Main phenotypes stated for the PCDH19 cohort on GEL") + scale_fill_viridis(option = "viridis")
关键调整说明:
- 修正了你原代码里的
..count...为..count..(多打一个点会导致统计值识别错误) geom_text必须设置position = position_dodge(width = 0.9),这样标签才会和对应的分组柱子对齐(0.9是geom_bar默认的dodge宽度,保持一致即可)- 用
vjust = -0.5把标签向上偏移,避免和柱子顶部贴在一起;如果你的数据数值较大,可以调整这个值或者改用y = ..count.. + n(n是你需要的固定偏移量) - 加上
stat = "count"明确告诉ggplot使用计数统计规则,确保标签读取正确的数值
内容的提问来源于stack exchange,提问作者Ar1229
相关产品推荐
相关产品推荐

