ggplot2中按组划分的百分比的Barplot

问题描述 投票:0回答:1

因此,我已经进行了搜索,但是找不到在ggplot中使用条形图解决此问题的方法。我试图使条形图成为分组变量2中每组病例总数的百分比。

现在,我可以看到计数的数量,

Dataframe =尽快

分组变量1-cc_groups(在图表顶部看到)(以0到100的分数计算范围内(20个步骤)的案例数。)

分组变量2-尽快(具有干预或控制的二进制变量,控制和干预的数量不相同)

初始代码

``` r
ggplot(ASAP, aes(x = asap, fill = asap)) + geom_bar(position = "dodge") + 
    facet_grid(. ~ cc_groups) + scale_fill_manual(values = c("red", 
    "darkgray"))
#> Error in ggplot(ASAP, aes(x = asap, fill = asap)): could not find function "ggplot"
```

reprex package(v0.3.0)在2020-05-19创建

这为我提供了下图,它是每个子组中计数的可视化。

enter image description here

我已经手动计算了实际需要可视化的不同百分比:

table_groups <- matrix(c(66/120,128/258,34/120,67/258,10/120,30/258,2/120,4/258,0,1/258,8/120,28/258),ncol = 2, byrow = T)
colnames(table_groups) <- c("ASAP","Control")
rownames(table_groups) <- c("0-10","20-39","40-59","60-79","80-99","100")


         ASAP  Control
0-10  0.55000 0.496124
20-39 0.28333 0.259690
40-59 0.08333 0.116279
60-79 0.01667 0.015504
80-99 0.00000 0.003876
100   0.06667 0.108527

[当我使用下面的Stefan提供的解决方案时(这是一个很好的答案,但没有实际的技巧。我得到以下输出)>>

    ``` r
ASAP %>% count(cc_groups, asap) %>% group_by(cc_groups) %>% mutate(pct = n/sum(n)) %>% 
    ggplot(aes(x = asap, y = pct, fill = asap)) + geom_col(position = "dodge") + 
    facet_grid(~cc_groups) + scale_fill_manual(values = c("red", 
    "darkgray"))
#> Error in ASAP %>% count(cc_groups, asap) %>% group_by(cc_groups) %>% mutate(pct = n/sum(n)) %>% : could not find function "%>%"
```

<sup>Created on 2020-05-19 by the [reprex package](https://reprex.tidyverse.org) (v0.3.0)</sup>

enter image description here

而(当我进行模拟时)id喜欢它显示像上面这样的百分比。

enter image description here

我为那个图纸感到抱歉。.:),reprex不断给我提供错误信息,请确保即时消息使用不正确。

因此,我已经进行了搜索,但是找不到在ggplot中使用条形图解决此问题的方法。我正在尝试使条形图以...

ggplot2 percentage geom-bar
1个回答
0
投票

最简单的方法是通过在绘制之前汇总数据,即手动计算计数和百分比:

© www.soinside.com 2019 - 2024. All rights reserved.