This question already has answers here:
draw the sum value above the stacked bar in ggplot2
(2个答案)
4年前关闭。
我使用此代码制作了以下堆叠式条形图:
现在,我想将每个组的总和添加到每个小节的顶部,但是我不知道如何。
有人可以帮我吗?
非常感谢!!!!!
如果需要,使用
(2个答案)
4年前关闭。
我使用此代码制作了以下堆叠式条形图:
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)
现在,我想将每个组的总和添加到每个小节的顶部,但是我不知道如何。
有人可以帮我吗?
非常感谢!!!!!
最佳答案
如果要避免创建第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
看起来不错。关于r - 在 ggplot2 中堆积条形图的顶部显示每组的总(和)值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38838724/
10-11 09:18