这是一个可重现的例子
set.seed(12)
d = data.frame(
x = rep(LETTERS[c(2,1,3,4)],each=30),
y=rnorm(120),
facet = c(rep("facet 1", 20), rep("facet 3", 10), rep(rep(paste("facet",1:3), each=10),3))
)
require(ggplot2)
ggplot(d,aes(x=x,y=y)) + geom_boxplot() + facet_grid(.~facet)
正如您所见,在facet 2
中,x == "B"
没有条目。
如何删除空白区域并仅为B
打勾facet 2
?
facet 2
的水平宽度将是其他方面的水平宽度的3/4。
答案 0 :(得分:2)
您必须同时设置scales = "free_x"
和space = "free_x"
:
require(ggplot2)
ggplot(d,aes(x=x,y=y)) + geom_boxplot() +
facet_grid(.~facet, scales = "free_x", space = "free_x")
scales = "free_x"
允许x轴在各个方面之间有所不同。因此,在第二个方面,将省略缺失的级别。
space = "free_x"
允许切面的不同空间宽度。根据文件:
如果" free_x"它们的宽度将与x刻度的长度成正比;
其中"他们的宽度"指小平面的宽度。