首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ggplot2:带填充的堆叠条形图中的值标签(geom_bar= 'fill')

ggplot2:带填充的堆叠条形图中的值标签(geom_bar= 'fill')
EN

Stack Overflow用户
提问于 2021-07-09 16:38:37
回答 1查看 39关注 0票数 0

有人能告诉我如何在ggplot中将值标签添加到堆叠的条形图中吗?有没有一种方法可以使用geom_bar()计算百分比,还是必须先手动计算百分比然后再使用geom_col()

代码语言:javascript
复制
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")) <= ???

感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-09 16:49:04

虽然stat_count在幕后计算一些百分比(可以通过..prop..after_stat(prop)访问),但大多数时候您必须手动计算百分比。因此,更简单的方法可能是在将数据传递给ggplot2之前对数据进行汇总。但是,下面的答案向您展示了一种使用after_stattapply动态计算百分比的方法

代码语言:javascript
复制
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")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68313749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档