双条形图比较两个分类变量
Double bar plot to compare two categorical variables
我正在尝试创建两个分类变量的条形图
A1 A2
更多更少
等于多
不太平等
等于多
..等等
我想要创建一个条形图,其中因子水平(“更多”、“更少”、“相等”等)位于 A1 和 A2 的 x 轴上,y 轴是频率
我对 A1 使用了以下代码,但我不知道如何在 x 轴上同时绘制 A1 和 A2
ggplot(df, aes(x = A1)) + geom_bar() + theme(axis.text.x = element_text(angle = 45, hjust = 1))
您可以通过将数据重塑为长格式来实现您想要的结果。使用一些虚假的随机数据:
library(ggplot2)
library(tidyr)
df_long <- df %>%
pivot_longer(c(A1, A2), names_to = "name", values_to = "value")
head(df_long)
#> # A tibble: 6 × 2
#> name value
#> <chr> <chr>
#> 1 A1 equal
#> 2 A2 equal
#> 3 A1 equal
#> 4 A2 less
#> 5 A1 equal
#> 6 A2 less
ggplot(df_long) +
geom_bar(aes(x = value, fill = name), position = "dodge") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
数据
set.seed(123)
df <- data.frame(
A1 = sample(c("more", "less", "equal"), 100, replace = TRUE),
A2 = sample(c("more", "less", "equal"), 100, replace = TRUE)
)
我正在尝试创建两个分类变量的条形图 A1 A2 更多更少 等于多 不太平等 等于多 ..等等
我想要创建一个条形图,其中因子水平(“更多”、“更少”、“相等”等)位于 A1 和 A2 的 x 轴上,y 轴是频率
我对 A1 使用了以下代码,但我不知道如何在 x 轴上同时绘制 A1 和 A2
ggplot(df, aes(x = A1)) + geom_bar() + theme(axis.text.x = element_text(angle = 45, hjust = 1))
您可以通过将数据重塑为长格式来实现您想要的结果。使用一些虚假的随机数据:
library(ggplot2)
library(tidyr)
df_long <- df %>%
pivot_longer(c(A1, A2), names_to = "name", values_to = "value")
head(df_long)
#> # A tibble: 6 × 2
#> name value
#> <chr> <chr>
#> 1 A1 equal
#> 2 A2 equal
#> 3 A1 equal
#> 4 A2 less
#> 5 A1 equal
#> 6 A2 less
ggplot(df_long) +
geom_bar(aes(x = value, fill = name), position = "dodge") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
数据
set.seed(123)
df <- data.frame(
A1 = sample(c("more", "less", "equal"), 100, replace = TRUE),
A2 = sample(c("more", "less", "equal"), 100, replace = TRUE)
)