我想在多个页面上使用以下layout_matrix布置图。

r - 在多个页面上使用grid.arrange或通过layout_matrix使用marrangeGrob-LMLPHP

代表例如

library(gridExtra)
library(ggplot2)

layout <- rbind(c(1,2,3,4),
                    c(1,2,3,4),
                    c(1,2,3,4),
                    c(5,5,5,5))
p <- list()
for(i in 1:15) {
    ifelse(i %% 5 > 0,
        p[[i]] <- ggplot(mtcars, aes(wt, mpg)) + geom_point() + ggtitle(paste("plot:",i)),
        p[[i]] <- tableGrob(mtcars[5:7,],rows = NULL)
    )
}


如果我只有一页:(简单)

grid.arrange(grobs=p[1:5],layout_matrix=layout)


如果我要多个页面:(我松开了所有图案)

marrangeGrob(grobs=p,nrow=4,ncol=2)


请帮助我提供一个通用解决方案,使多个页面上都有一个layout_matrix。

最佳答案

这似乎可行,

marrangeGrob(grobs=p, nrow=1, ncol=5, layout_matrix=layout)


(绝对是偶然的)

marrangeGrob只是for循环和grid.arrange的薄包装,因此,如果您需要比这种幸运的解决方法更精致的东西,则可能应根据需要修改代码。

08-25 02:36