ggplot多个二进制变量,由另一个二进制变量分组
ggplot multiple binary variables, grouped by another binary varaible
你好,我有很多这样的二进制变量。我想可视化每个条形变量的计数,并通过组变量中的结果将它们分组在一个 ggplot 条形图中。鉴于对 bar 变量的响应不是相互排斥的,我不能将它们重新编码为一个分类变量,这是我遇到一些问题的地方。
酒吧 1
酒吧 2
酒吧 3
组
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
你想要这个吗?
df <- read.table(header = T, text = "bar1 bar2 bar3 groups
1 0 1 1
1 1 1 0
1 1 0 0
1 0 1 1")
library(tidyverse)
df %>% pivot_longer(starts_with('bar')) %>%
group_by(groups, name) %>%
summarise(value = sum(value), .groups = 'drop') %>%
ggplot() +
geom_col(aes(x = name, y = value, fill = as.factor(groups)), position = 'dodge')
如果要删除 0,请使用过滤器
df %>% pivot_longer(starts_with('bar')) %>%
group_by(groups, name) %>%
summarise(value = sum(value), .groups = 'drop') %>%
filter(value != 0) %>%
ggplot() +
geom_col(aes(x = name, y = value, fill = as.factor(groups)), position = 'dodge')
由 reprex package (v2.0.0)
创建于 2021-06-11
你好,我有很多这样的二进制变量。我想可视化每个条形变量的计数,并通过组变量中的结果将它们分组在一个 ggplot 条形图中。鉴于对 bar 变量的响应不是相互排斥的,我不能将它们重新编码为一个分类变量,这是我遇到一些问题的地方。
酒吧 1 | 酒吧 2 | 酒吧 3 | 组 |
---|---|---|---|
1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 0 | 1 | 1 |
你想要这个吗?
df <- read.table(header = T, text = "bar1 bar2 bar3 groups
1 0 1 1
1 1 1 0
1 1 0 0
1 0 1 1")
library(tidyverse)
df %>% pivot_longer(starts_with('bar')) %>%
group_by(groups, name) %>%
summarise(value = sum(value), .groups = 'drop') %>%
ggplot() +
geom_col(aes(x = name, y = value, fill = as.factor(groups)), position = 'dodge')
如果要删除 0,请使用过滤器
df %>% pivot_longer(starts_with('bar')) %>%
group_by(groups, name) %>%
summarise(value = sum(value), .groups = 'drop') %>%
filter(value != 0) %>%
ggplot() +
geom_col(aes(x = name, y = value, fill = as.factor(groups)), position = 'dodge')
由 reprex package (v2.0.0)
创建于 2021-06-11