gpt4 book ai didi

r - 使用 stat_count 时将百分比标签添加到 ggplot

转载 作者:行者123 更新时间:2023-12-04 11:10:12 25 4
gpt4 key购买 nike

出于某种原因,我似乎无法使用 stat_count 向 ggplot 添加正确的比例标签。下面的代码返回显示所有类别 100% 的标签,即使我使用的是 ..prop..。我应该使用其他东西代替 stat_count 吗?

library(tidyverse)
diamonds %>%
ggplot(aes(color, fill=cut)) +
geom_bar(position = 'fill') +
stat_count(aes(label= scales::percent(..prop..)),
geom = 'text', position = position_fill(vjust = 0.5))

我知道这也可以通过在将数据提供给 ggplot(如下所示)之前计算百分比来完成,但我有相当多的代码使用 geom_bar如果我这样做的话,我需要改变所有这些。

diamonds %>% 
count(color, cut) %>%
group_by(color) %>%
mutate(pct=n/sum(n)) %>%
ggplot(aes(color, pct, fill=cut)) +
geom_col(position = 'fill') +
geom_text(aes(label=scales::percent(pct)), position = position_fill(vjust=0.5))

最佳答案

如果您不想更改 geom_bar 部分,您可以在 geom_label() 中进行计算:

diamonds %>% 
ggplot(aes(color, fill=cut)) +
geom_bar(position = 'fill') +
geom_text(data = . %>%
group_by(color, cut) %>%
tally() %>%
mutate(p = n / sum(n)) %>%
ungroup(),
aes(y = p, label = scales::percent(p)),
position = position_stack(vjust = 0.5),
show.legend = FALSE)

plot

关于r - 使用 stat_count 时将百分比标签添加到 ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52091329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com