如何在 ggplot2 中使不同的变量成为它们自己的列?
How to make distinct variables their own columns in ggplot2?
所以我试图复制以下情节:
但我有 5 个 True 或 False 布尔变量,而不是此处列出的 class,我希望每个变量根据 ID 的计数填充每一列。
数据
ID var1 var2 var3 var4 var5
001 TRUE FALSE TRUE FALSE TRUE
002 FALSE TRUE FALSE FALSE FALSE
003 TRUE FALSE TRUE TRUE TRUE
004 TRUE TRUE TRUE FALSE FALSE
005 TRUE FALSE TRUE TRUE TRUE
006 FALSE FALSE TRUE FALSE FALSE
最终目标应该是:
- x轴:变量,每个变量都是一列
- y 轴:计数,频率值基于 ID 的计数,即行数。
- 组:对或错。
这就是我认为生成的 df 可能看起来像但不确定...
variables t_f count
var1 TRUE 4
var1 FALSE 2
var2 TRUE 2
var2 FALSE 4
var3 TRUE 5
var3 FALSE 1
var4 TRUE 2
var4 FALSE 4
var5 TRUE 3
var5 FALSE 3
编辑: 来自@Ekoam 的很好的回答。我还有一个级别,我认为这很容易但不完全是。
ID var1 var2 var3 var4 var5 group
001 TRUE FALSE TRUE FALSE TRUE A
002 FALSE TRUE FALSE FALSE FALSE B
003 TRUE FALSE TRUE TRUE TRUE B
004 TRUE TRUE TRUE FALSE FALSE A
005 TRUE FALSE TRUE TRUE TRUE A
006 FALSE FALSE TRUE FALSE FALSE B
假设有一个组变量。我如何 facet_wrap() 此数据并为每个组生成两个不同的条形图?
这是一种方法。如果只是计算行数,则不必手动计算 y
s。您可以使用 geom_bar
。像这样
library(dplyr)
library(tidyr)
library(ggplot2)
df %>%
pivot_longer(-ID, names_to = "variables", values_to = "count") %>%
ggplot() +
geom_bar(aes(x = variables, fill = count), position = "stack")
输出
所以我试图复制以下情节:
但我有 5 个 True 或 False 布尔变量,而不是此处列出的 class,我希望每个变量根据 ID 的计数填充每一列。
数据
ID var1 var2 var3 var4 var5
001 TRUE FALSE TRUE FALSE TRUE
002 FALSE TRUE FALSE FALSE FALSE
003 TRUE FALSE TRUE TRUE TRUE
004 TRUE TRUE TRUE FALSE FALSE
005 TRUE FALSE TRUE TRUE TRUE
006 FALSE FALSE TRUE FALSE FALSE
最终目标应该是:
- x轴:变量,每个变量都是一列
- y 轴:计数,频率值基于 ID 的计数,即行数。
- 组:对或错。
这就是我认为生成的 df 可能看起来像但不确定...
variables t_f count
var1 TRUE 4
var1 FALSE 2
var2 TRUE 2
var2 FALSE 4
var3 TRUE 5
var3 FALSE 1
var4 TRUE 2
var4 FALSE 4
var5 TRUE 3
var5 FALSE 3
编辑: 来自@Ekoam 的很好的回答。我还有一个级别,我认为这很容易但不完全是。
ID var1 var2 var3 var4 var5 group
001 TRUE FALSE TRUE FALSE TRUE A
002 FALSE TRUE FALSE FALSE FALSE B
003 TRUE FALSE TRUE TRUE TRUE B
004 TRUE TRUE TRUE FALSE FALSE A
005 TRUE FALSE TRUE TRUE TRUE A
006 FALSE FALSE TRUE FALSE FALSE B
假设有一个组变量。我如何 facet_wrap() 此数据并为每个组生成两个不同的条形图?
这是一种方法。如果只是计算行数,则不必手动计算 y
s。您可以使用 geom_bar
。像这样
library(dplyr)
library(tidyr)
library(ggplot2)
df %>%
pivot_longer(-ID, names_to = "variables", values_to = "count") %>%
ggplot() +
geom_bar(aes(x = variables, fill = count), position = "stack")
输出