如何为ggplot的geom_bar添加分组年度总计条形图?
给双分组条形图添加年度总计条形
要在现有双分组条形图基础上添加各年份的总计条形,可通过扩展数据框实现,具体操作如下:
1. 处理数据
先统计原数据中各年份各分组的数量,再插入总计行(支持固定值或自动计算总计):
library(ggplot2) library(dplyr) # 原数据 x <- data.frame(grp=rep(c("x1", "x2", "x3"), 9), yr=c(rep(2016,4), rep(2017,5))) # 方式1:使用固定总计值(2016年12,2017年15) count_data <- x %>% count(yr, grp) %>% bind_rows(data.frame(yr = c(2016, 2017), grp = "总计", n = c(12, 15))) # 方式2:基于原数据自动计算总计 # count_data <- x %>% # count(yr, grp) %>% # bind_rows(x %>% count(yr) %>% mutate(grp = "总计"))
2. 绘制带总计的条形图
通过position_dodge()设置统一宽度,确保分组条形与总计条形对齐:
ggplot(count_data, aes(x = factor(yr), y = n, fill = grp)) + geom_bar(stat = "identity", position = position_dodge(width = 0.9)) + labs(x = "年份", y = "数量", fill = "分组")
运行后,每个年份的分组条形旁会显示对应年份的总计条形。
内容的提问来源于stack exchange,提问作者gecko
相关产品推荐
相关产品推荐

