Отображение итоговых (сумма) значений каждой группы в верхней части уложенной гистограммы в ggplot2

Я использовал этот код для создания следующей гистограммы:

library(ggplot2)
library(dplyr)
Year <- c(rep(c("2006", "2007", "2008", "2009"), each = 4))
Category <- c(rep(c("A", "B", "C", "D"), times = 4))
Frequency <- c(168, 259, 226, 340, 216, 431, 319, 368, 423, 645, 234, 685, 166, 467, 274, 251)
Data <- data.frame(Year, Category, Frequency)
Data2 <-Data%>%
 group_by(Year, Category)%>%
 summarise(Sum_grp = sum(Frequency))
Data3 <-transform(Data2, Pos = ave(Frequency, Year, FUN = cumsum) - Frequency / 2)
ggplot(Data3, aes(Year, Frequency, group=Category,fill = Category))+
 geom_bar(stat="identity")+
 geom_text(aes(label = Frequency,y=Pos), size = 3)

Теперь я хотел бы добавить сумму каждой группы в верхнюю панель, но я не знаю, как это сделать.

Может ли кто-нибудь мне помочь?

Спасибо большое!!!!!

1 ответ

Если вы хотите избежать создания 3-го сводного набора данных, вы можете использовать stat_summary.

ggplot(Data3, aes(Year, Frequency, group = Category, fill = Category))+
 geom_bar(stat="identity")+
 geom_text(aes(label = Frequency,y=Pos), size = 3) +
 stat_summary(fun.y = sum, aes(label = ..y.., group = Year), geom = "text")

Используйте vjust, чтобы переместить ярлыки больше, если это необходимо. Я обнаружил, что vjust = -.2 выглядит довольно неплохо.

licensed under cc by-sa 3.0 with attribution.