我正在用plot_grid
组装两个ggplot对象,每个对象使用相同的面,以给予一个网格图的效果,但x轴不同。我只需要第一个ggplot对象上的面文本,然而,plot_grid
似乎为第二个图形中删除的面条带保留了空间。有没有解决这个问题的方法,或者用cowplot实现这个效果的不同方法?
作为一个例子,这里有一些代码:
dat <- tibble(x1=1:10, x2=20:11, y=rnorm(x2/2 - x1), lab=rep(c("A", "B"), 5))
p1 <- ggplot(dat, aes(x1, y)) +
geom_point() +
facet_wrap(~lab, nrow=1) +
theme(plot.margin=unit(c(0, 0, 0, 0), "in"))
p2 <- ggplot(dat, aes(x2, y)) +
geom_point() +
facet_wrap(~lab, nrow=1) +
theme(plot.margin=unit(c(0, 0, 0, 0), "in")
plot_grid(p1, p2, nrow=2, align="h")
我可以很好地删除最下面一行的面:
p2 <- ggplot(dat, aes(x2, y)) +
geom_point() +
facet_wrap(~lab, nrow=1) +
theme(
plot.margin=unit(c(0, 0, 0, 0), "in"),
strip.background=element_blank(),
strip.text=element_blank()
)
p2
但当我添加到网格中时,条带的空间突然又出现了:
plot_grid(p1, p2, nrow=2, align="h")
有趣的是,当我从两行中删除条带时,两行的间距正确地不存在。
这是怎么回事?有人能提出解决办法吗?
1条答案
按热度按时间kognpnkq1#
这就是你要找的吗?
可以通过删除第一个图的所有图元来实现此目的:(在您的
p1
呼叫或plot_grid
中)