为堆积条形图中的每个条添加总计

时间:2021-02-22 10:35:58

标签: r ggplot2

如何分别显示每个条的计数和总数 sample image

 ggplot(dealflow_summary_fiscal_yr,aes(x=Total,y=Type,fill=status))+
      geom_bar(stat='identity',width=0.2)+theme_classic()+
      geom_text(aes(label = stat(x),group = Type),stat = "summary",fun = sum,vjust = .20,hjust= 1)+
      theme(axis.line.y = element_blank(),axis.ticks = element_blank(),legend.position = "bottom",
            axis.text.x = element_text(face = "bold", color = "black", size = 10, angle = 45, hjust = 1))+
      labs(x="", y="", fill="")+
      scale_fill_manual(values=c("#284a8d", "#00B5CE"))

1 个答案:

答案 0 :(得分:0)

分别计算每个 Type 的总数并将它们绘制在单独的 geom_text 中。

library(dplyr)
library(ggplot2)

Total_data <- dealflow_summary_fiscal_yr %>% 
                 group_by(Type) %>% summarise(Total = sum(Total))

dealflow_summary_fiscal_yr %>%
  group_by(Type, status) %>%
  summarise(Total = sum(Total)) %>%
  ggplot() + aes(x=Total,y=Type,fill=status)+
  geom_bar(stat='identity',width=0.2)+
  theme_classic() +
  geom_text(aes(label = Total)) +
  geom_text(data = Total_data, aes(x = Total, y = Type, label = Total), 
            inherit.aes = FALSE) + 
  theme(axis.line.y = element_blank(),
        axis.ticks = element_blank(),
        legend.position = "bottom",
        axis.text.x = element_text(face = "bold", color = "black", 
                                   size = 10, angle = 45, hjust = 1))+
  labs(x="", y="", fill="")+
  scale_fill_manual(values=c("#284a8d", "#00B5CE"))

您可能需要根据您的完整数据在 hjust 中使用 vjustgeom_text 调整标签,以便它们处于正确的位置。