因此,我已经进行了搜索,但是找不到ggplot中的条形图解决此问题的方法。 我试图使条形图成为分组变量2中每组病例总数的百分比。
现在,我可以看到计数的数目,
数据框 =尽快
分组变量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创建
这为我提供了下图,它是每个子组中计数的可视化显示。
我已经手动计算了实际需要可视化的不同百分比:
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>
而(当我进行模拟时)id喜欢它来显示上述百分比。
我对此表示抱歉。:)和reprex不断给我提供错误信息,请确保即时消息使用不正确。
答案 0 :(得分:0)
最简单的方法是在绘图前汇总数据,即手动计算计数和百分比:
library(ggplot2)
library(dplyr)
ASAP %>%
count(cc_groups, asap) %>%
group_by(asap) %>%
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"))
使用ggplot2::mpg
作为示例数据:
library(ggplot2)
library(dplyr)
# example data
mpg2 <- mpg %>%
filter(cyl %in% c(4, 6)) %>%
mutate(cyl = factor(cyl))
# Manually compute counts and percentages
mpg3 <- mpg2 %>%
count(class, cyl) %>%
group_by(class) %>%
mutate(pct = n / sum(n))
# Plot
ggplot(mpg3, aes(x = cyl, y = pct, fill = cyl)) +
geom_col(position = "dodge") +
facet_grid(~ class) +
scale_fill_manual(values = c("red","darkgray"))
由reprex package(v0.3.0)于2020-05-18创建