您可以使用参数layout_matrix
in grid.arrange
为了更多的控制。
一个可重现的例子,
library(ggplot2)
library(gridExtra)
get_legend<-function(myggplot){
tmp <- ggplot_gtable(ggplot_build(myggplot))
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
legend <- tmp$grobs[[leg]]
return(legend)
}
p <- ggplot()
p2 <- ggplot(mtcars, aes(mpg, wt, col=factor(am))) + geom_point()
legend <- get_legend(p2)
grid.arrange(p, p, p, p, legend,
layout_matrix=rbind(c(1,2,3), c(4,5,5)))
哪个产生
或者也许你想要
grid.arrange(p, p ,p, p, legend,
layout_matrix=rbind(c(1,1,2,2,5), c(3,3,4,4,5)))