You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言的堆叠柱状图中添加计数标签?

解决堆叠柱状图添加标签的问题

你的核心问题是搞错了geom_bar的统计逻辑和geom_text的映射关系,下面给你两种可行的解决方案:

方法1:直接利用ggplot的统计功能

基于你最初的geom_bar(默认统计各组数量),给geom_text指定同样的统计规则,让它自动计算每个堆叠块的数值并添加标签:

ggplot(data=cyclist_data2) +
  geom_bar(mapping = aes(x=member_casual, fill=rideable_type)) +
  geom_text(
    stat="count", 
    aes(x=member_casual, y=..count.., label=..count.., group=rideable_type), 
    position=position_stack(vjust=0.5), # 把标签放在堆叠块垂直中间
    colour="black", 
    size=5
  )
  • stat="count":让geom_text和geom_bar一样统计每组的数量
  • ..count..:指代ggplot自动计算出的计数结果
  • position_stack(vjust=0.5):调整标签在堆叠块内的位置,vjust值在0-1之间可按需修改

方法2:先手动汇总数据(更适合新手理解)

先用dplyr把数据提前汇总好,再绘图,逻辑更直观:

library(dplyr)

# 先统计每个分类组合的数量
summary_data <- cyclist_data2 %>%
  count(member_casual, rideable_type)

# 用汇总后的数据绘图
ggplot(summary_data, aes(x=member_casual, y=n, fill=rideable_type)) +
  geom_bar(stat="identity") +
  geom_text(
    aes(label=n), 
    position=position_stack(vjust=0.5), 
    colour="black", 
    size=5
  )
  • count()函数会生成一个n列,存储每个组合的计数
  • 绘图时直接用y=n映射数值,标签也直接用n,逻辑更清晰

另外注意你之前代码里的小错误:colour = black要改成colour = "black",字符串必须加引号。

内容的提问来源于stack exchange,提问作者joo_luis49

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:15:47