如何在ggplot离散型变量的直方图上方添加计数统计?
解决ggplot离散变量直方图添加计数标签的报错问题
你遇到的问题核心是stat_bin只支持连续型变量,而你的x轴是离散因子,直接调用它就会触发报错。给你两个快速解决思路:
思路一:替换stat_bin为stat_count
既然你用geom_histogram(stat = "count")本质是生成计数柱状图,那添加标签直接用适配离散变量的stat_count就行,不需要依赖stat_bin。修正后的代码如下:
library(tidyverse) d <- cars |> mutate(discrete_var = factor(speed)) ggplot(d, aes(x = discrete_var)) + geom_histogram(stat = "count") + stat_count(geom='text', color='white', aes(label=..count..), position=position_stack(vjust = 0.5))
- 移除了
binwidth=1参数(stat_count不需要该参数) - 替换stat_bin为stat_count,完美匹配离散变量的计数需求
思路二:改用geom_col+stat_count(更简洁)
其实用geom_col配合stat_count会更直观,因为geom_col默认就是处理计数类的柱状图,代码如下:
ggplot(d, aes(x = discrete_var)) + geom_col() + stat_count(geom='text', color='white', aes(label=..count..), position=position_stack(vjust = 0.5))
内容的提问来源于stack exchange,提问作者a_todd12
相关产品推荐
相关产品推荐

