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

堆叠条形图:将Y轴改为计数刻度并添加两类观测数标注

实现双标注堆叠计数条形图

没问题!要达成你想要的效果,咱们可以调整代码的几个部分,把Y轴改成计数刻度,同时添加两种标注:

步骤1:调整条形图为计数堆叠模式

首先把原来的position="fill"(比例堆叠)换成position="stack"(计数堆叠),这样Y轴就会显示实际的观测数量,同时去掉百分比相关的Y轴设置。

步骤2:准备标注数据

我们需要两个统计数据:每个Color的总观测数,以及每个Color下Ripe=TRUE的观测数。可以用基础R的table()函数来统计:

# 统计每个Color的总数量
total_counts <- as.data.frame(table(fruit$Color))
colnames(total_counts) <- c("Color", "Total")

# 统计每个Color下Ripe=TRUE的数量
true_counts <- as.data.frame(table(fruit$Color[fruit$Ripe == TRUE]))
colnames(true_counts) <- c("Color", "True_Count")

# 合并数据用于标注
label_data <- merge(total_counts, true_counts, by = "Color")

步骤3:添加双标注

用geom_text分别添加总计数和Ripe=TRUE的计数,注意设置inherit.aes = FALSE避免继承透明度映射,同时调整垂直位置让标注不遮挡条形:

完整代码

library(ggplot2)

# 准备标注数据
total_counts <- as.data.frame(table(fruit$Color))
colnames(total_counts) <- c("Color", "Total")
true_counts <- as.data.frame(table(fruit$Color[fruit$Ripe == TRUE]))
colnames(true_counts) <- c("Color", "True_Count")
label_data <- merge(total_counts, true_counts, by = "Color")

# 绘制图表
ggplot(fruit, aes(Color)) + 
  geom_bar(stat="count", position="stack", aes(fill=Color, color=Color, alpha=Ripe)) + 
  # 添加总计数标注(条形顶部)
  geom_text(data = label_data, aes(x = Color, y = Total, label = Total), 
            inherit.aes = FALSE, vjust = -0.5, size = 4) +
  # 添加Ripe=TRUE的计数标注(对应段顶部)
  geom_text(data = label_data, aes(x = Color, y = True_Count, label = True_Count), 
            inherit.aes = FALSE, vjust = -0.5, size = 4, color = "darkred") +
  scale_alpha_discrete(range=c(1,0.6))+ 
  theme(axis.title.x = element_blank(), axis.text.x = element_blank(), axis.ticks.x = element_blank())+ 
  scale_color_manual(values = c("Black", "Black", "Black"))+ 
  guides(fill = guide_legend(override.aes = list(colour = NA))) +
  labs(y = "观测计数") # 添加Y轴标题

效果说明

  • Y轴现在显示的是每个Color的实际观测计数
  • 每个条形顶部的数值是对应Color的总观测数
  • 每个条形下半部分(Ripe=TRUE段)顶部的红色数值是该Color下Ripe=TRUE的观测数(你可以根据需要调整颜色和大小)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:35:57