r - 在 ggplot2 中堆积条形图的顶部显示每组的总(和)值

标签 r ggplot2 dplyr

这个问题在这里已经有了答案:





draw the sum value above the stacked bar in ggplot2

(2 个回答)


5年前关闭。




我使用此代码制作了以下堆积条形图:

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) 

enter image description here

现在,我想在每个栏的顶部添加每个组的总和,但我不知道如何。

有人可以帮我吗?

非常感谢!!!!!

最佳答案

如果你想避免制作第三个汇总数据集,你可以使用 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")

enter image description here

使用 vjust如果需要,将标签向上移动更多。我找到了 vjust = -.2看起来不错。

关于r - 在 ggplot2 中堆积条形图的顶部显示每组的总(和)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38838724/

相关文章:

Oracle R Enterprise (ORE) KMeans 包

r - 如何用字符串拆分向量

r - 如何改变 "position_dodge"一个点而不是 ggplot2 系列中的其他点

r - R中的时间序列标签

r - 合并和替换字符列

r - 如何检查映射表中的值范围?

string - R:如何替换字符串中的第 5 个元素?

r - 检查两个文件路径是否解析为同一个文件

r - 无法将 ggplot 保存为 eps

r - 使用dplyr将变量作为函数的默认参数