繁体   English   中英

ggplot2:带有 geom_bar(position = 'fill') 的堆叠条形图中的值标签

[英]ggplot2: Value labels in stacked barplot with geom_bar(position = 'fill')

有人可以帮助我如何将值标签添加到 ggplot 中的堆叠条形图吗? 有没有办法可以使用geom_bar()计算百分比,还是必须手动计算百分比然后使用geom_col()

library(tidyverse)

df <- data.frame(var1 = sample(c("A","B"), size = 100, replace=TRUE),
                 var2 = sample(c("x", "y"), size=100, replace=TRUE))

df %>% 
  ggplot(aes(x = var1, fill = var2)) + 
    geom_bar(position = 'fill') +
    geom_text(aes(x = var1, fill = var2, label = "x")) <= ???

感谢帮助!

虽然stat_countstat_count计算一些百分比(可以通过..prop..after_stat(prop)访问,大多数时候你必须手动计算百分比。因此,更简单的方法可能是在传递数据之前汇总数据到 ggplot2。但是,我下面的回答向您展示了一种使用after_stattapply after_stat计算百分比的方法:

library(tidyverse)

df <- data.frame(var1 = sample(c("A","B"), size = 100, replace=TRUE),
                 var2 = sample(c("x", "y"), size=100, replace=TRUE))

df %>% 
  ggplot(aes(x = var1, fill = var2)) + 
  geom_bar(position = 'fill') +
  geom_text(aes(x = var1, 
                label = scales::percent(after_stat(count / tapply(count, x, sum)[x])), 
                group = var2), position = "fill", stat = "count")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM