R - 基于 3 个变量的一张图表中的双箱线图
R - double boxplot in one chart based on 3 variables
问题是有两个图表基于一个图表中的不同列
How chart should look like
示例数据
set.seed(42)
data <- data.frame(Id=1:20,
Q_3_1=sample(1:6, 20, replace=TRUE),
Q_3_2=sample(1:6, 20, replace=TRUE),
Level=sample(c("AAAA", "BBBB", "CCCC", "DDDD"), 20, replace=TRUE))
如果我没理解错的话,这里有一个tidyverse
解决方案:
图书馆
library(tidyverse)
数据
set.seed(42)
data <- data.frame(Id=1:20,
Q_3_1=sample(1:6, 20, replace=TRUE),
Q_3_2=sample(1:6, 20, replace=TRUE),
Level=sample(c("AAAA", "BBBB", "CCCC", "DDDD"), 20, replace=TRUE))
剧情代码
data %>%
#Pivot data to create a single column with all values from Q_3_1 to Q_3_2
pivot_longer(cols = Q_3_1:Q_3_2) %>%
ggplot(aes(name,value, fill = Level))+
geom_boxplot()
输出
问题是有两个图表基于一个图表中的不同列
How chart should look like
示例数据
set.seed(42)
data <- data.frame(Id=1:20,
Q_3_1=sample(1:6, 20, replace=TRUE),
Q_3_2=sample(1:6, 20, replace=TRUE),
Level=sample(c("AAAA", "BBBB", "CCCC", "DDDD"), 20, replace=TRUE))
如果我没理解错的话,这里有一个tidyverse
解决方案:
图书馆
library(tidyverse)
数据
set.seed(42)
data <- data.frame(Id=1:20,
Q_3_1=sample(1:6, 20, replace=TRUE),
Q_3_2=sample(1:6, 20, replace=TRUE),
Level=sample(c("AAAA", "BBBB", "CCCC", "DDDD"), 20, replace=TRUE))
剧情代码
data %>%
#Pivot data to create a single column with all values from Q_3_1 to Q_3_2
pivot_longer(cols = Q_3_1:Q_3_2) %>%
ggplot(aes(name,value, fill = Level))+
geom_boxplot()