如何在R的ggplot直方图中添加数据标签?
解决ggplot分类直方图添加计数标签的问题
你的代码失效原因是:stat_bin是针对连续变量进行分箱计数的工具,而你的x是分类变量(Type.of.Customer),用它来添加标签不匹配,所以无法生效。
以下两种方法可以解决:
方法一:直接用stat_count添加标签
利用stat_count(和geom_histogram(stat="count")底层逻辑一致)生成计数标签,代码如下:
ggplot(Melvyl, aes(x = Type.of.Customer)) + geom_histogram(stat = "count") + stat_count(geom = "text", aes(label = ..count..), vjust = -1.5)
方法二:提前统计数据再绘图(更直观)
先通过dplyr统计每个类别的计数,再用geom_col(分类变量计数图的更语义化选择,效果和geom_histogram(stat="count")一致)配合geom_text添加标签:
library(dplyr) # 统计每个客户类型的数量 count_df <- Melvyl %>% count(Type.of.Customer) ggplot(count_df, aes(x = Type.of.Customer, y = n)) + geom_col() + geom_text(aes(label = n), vjust = -1.5)
补充说明:对于分类变量的计数可视化,geom_col()比geom_histogram(stat="count")更贴合场景——直方图原本是为连续变量设计的,条形图(geom_col)才是分类变量计数的标准选择。
内容的提问来源于stack exchange,提问作者aravind sampath
相关产品推荐
相关产品推荐

