我正在尝试制作一个箱线图,其中不同的列具有不同的 X 轴。我的解决方案是创建结合不同因素的新变量,并让分面将它们分开。它这样做,但它保留了两列的所有因子水平,即使其中许多没有数据。
我希望“cyl”列只有 cyl 级别,而“trans”列只有 trans 级别,而不是每个级别都有两个级别。
一些示例数据。
ids<-c("Ygrp","Xgrp","Xlab","Vals")
dtest<-rbind(setNames(cbind(rep("cty",234),rep("cyl",234), mpg[,c("cyl","cty")]),ids),
setNames(cbind(rep("cty",234),rep("trans",234), mpg[,c("trans","cty")]),ids),
setNames(cbind(rep("hwy",234),rep("cyl",234), mpg[,c("cyl","hwy")]),ids),
setNames(cbind(rep("hwy",234),rep("trans",234), mpg[,c("trans","hwy")]),ids))
p <- ggplot(dtest, aes(x = reorder(Xlab, Vals, FUN=median, na.rm=TRUE), Vals))
p + facet_grid(Ygrp~Xgrp)+
geom_boxplot()