【问题标题】:Showing total (sum) values each group on the top of stacked bar chart in ggplot2 [duplicate]在ggplot2的堆叠条形图顶部显示每组的总(和)值[重复]
【发布时间】:2016-12-14 18:58:20
【问题描述】:

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

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) 

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

有人可以帮帮我吗?

非常感谢!!!!!!

【问题讨论】:

    标签: r ggplot2 dplyr


    【解决方案1】:

    如果您想避免制作第三个汇总数据集,可以使用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 看起来不错。

    【讨论】:

      猜你喜欢
      • 2023-02-21
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 2022-08-19
      • 2018-10-03
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多