在一个条形图中创建多个条形图
Create multiple bar graphs in one bar graph
我有一个如下所示的数据集:
my_DataSet <- {
#
Variable A
Variable B
Variable C
Control Group
1
1
0
0
1
2
1
1
0
1
3
0
0
1
0
}
在 Plot multiple boxplot in one graph 之后,我进行了一次转换 (new_DataSet <- melt(my_DataSet, id.var = "Control_Group")
),结果数据如下所示:
我有一个如下所示的数据集:
new_DataSet <- {
#
Control Group
variable
value
1
1
Variable A
1
2
1
Variable B
0
3
1
Variable C
0
4
1
Variable A
1
5
1
Variable B
1
6
1
Variable C
0
7
0
Variable A
0
8
0
Variable B
0
9
0
Variable C
1
}
我想制作一个条形图,显示控制组和干预组中 1 在所有 3 个变量中所占的百分比。
我想像下面的条形图:
我所做的如下:
p <- ggplot(data = my_DataSet)
p + geom_bar(mapping = aes(x = Variable_A, y = ..prop.., fill = Control_Group), position = "dodge")
这导致:
其中有两个问题
- 只显示
Variable A
,不显示A
、B
和C
- 我只想要 1 的百分比,而不是零的百分比。但是,如果我事先过滤数据,比例就会出错。
您可以获得每列和每个控制组的比例并绘制条形图。
library(tidyverse)
my_DataSet %>%
pivot_longer(cols = -Control_group) %>%
group_by(name, Control_group = recode(Control_group,
'1' = 'control', '0' = 'intervention')) %>%
summarise(value = mean(value)) %>%
ggplot() + aes(name, value, fill = Control_group) +
geom_bar(stat = 'identity', position = 'dodge')
我有一个如下所示的数据集:
my_DataSet <- {
# | Variable A | Variable B | Variable C | Control Group |
---|---|---|---|---|
1 | 1 | 0 | 0 | 1 |
2 | 1 | 1 | 0 | 1 |
3 | 0 | 0 | 1 | 0 |
}
在 Plot multiple boxplot in one graph 之后,我进行了一次转换 (new_DataSet <- melt(my_DataSet, id.var = "Control_Group")
),结果数据如下所示:
我有一个如下所示的数据集:
new_DataSet <- {
# | Control Group | variable | value |
---|---|---|---|
1 | 1 | Variable A | 1 |
2 | 1 | Variable B | 0 |
3 | 1 | Variable C | 0 |
4 | 1 | Variable A | 1 |
5 | 1 | Variable B | 1 |
6 | 1 | Variable C | 0 |
7 | 0 | Variable A | 0 |
8 | 0 | Variable B | 0 |
9 | 0 | Variable C | 1 |
}
我想制作一个条形图,显示控制组和干预组中 1 在所有 3 个变量中所占的百分比。
我想像下面的条形图:
我所做的如下:
p <- ggplot(data = my_DataSet)
p + geom_bar(mapping = aes(x = Variable_A, y = ..prop.., fill = Control_Group), position = "dodge")
这导致:
其中有两个问题
- 只显示
Variable A
,不显示A
、B
和C
- 我只想要 1 的百分比,而不是零的百分比。但是,如果我事先过滤数据,比例就会出错。
您可以获得每列和每个控制组的比例并绘制条形图。
library(tidyverse)
my_DataSet %>%
pivot_longer(cols = -Control_group) %>%
group_by(name, Control_group = recode(Control_group,
'1' = 'control', '0' = 'intervention')) %>%
summarise(value = mean(value)) %>%
ggplot() + aes(name, value, fill = Control_group) +
geom_bar(stat = 'identity', position = 'dodge')