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()

输出