ggplot 将聚合摘要添加到条形图中

ggplot add aggregated summaries to a bar plot

我有以下数据框:

structure(list(StepsGroup = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 
3L, 3L, 3L), .Label = c("(-Inf,3e+03]", "(3e+03,1.2e+04]", "(1.2e+04, Inf]"
), class = "factor"), GlucoseGroup = structure(c(1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L), .Label = c("<100", "100-180", ">180"
), class = "factor"), n = c(396L, 1600L, 229L, 787L, 4182L, 375L, 
110L, 534L, 55L), freq = c(0.177977528089888, 0.719101123595506, 
0.102921348314607, 0.147267964071856, 0.782559880239521, 0.0701721556886228, 
0.157367668097282, 0.763948497854077, 0.0786838340486409)), class = 
c("grouped_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -9L), vars = "StepsGroup", 
labels = structure(list(
StepsGroup = structure(1:3, .Label = c("(-Inf,3e+03]", "(3e+03,1.2e+04]", 
"(1.2e+04, Inf]"), class = "factor")), class = "data.frame", row.names = 
c(NA, -3L), vars = "StepsGroup", drop = TRUE), indices = list(0:2, 
3:5, 6:8), drop = TRUE, group_sizes = c(3L, 3L, 3L), biggest_group_size = 
3L)

我想创建一个堆积条形图,并在每个条形图的顶部添加每个 StepsGroup 的摘要。所以第一组2225,第二组5344,第三组699。

我正在使用以下脚本:

ggplot(d_stepsFastingSummary , aes(y = freq, x = StepsGroup, fill = 
GlucoseGroup)) + geom_bar(stat = "identity") +
 geom_text(aes(label = sum(n()), vjust = 0))

直到 geom_text 工作之前的部分,但最后一点我得到以下错误:

Error: This function should not be called directly

知道如何添加合计数量吗?

我们可以创建一个新的数据框 stacked_df,每个 StepsGroup

都有 sum
stacked_df <- df %>% group_by(StepsGroup) %>% summarise(nsum = sum(n))


ggplot(df) + 
   geom_bar(aes(y = freq, x = StepsGroup, fill= GlucoseGroup),stat = "identity") +
   geom_text(data = stacked_df, aes(label = nsum, StepsGroup,y = 1.1))