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

And*_*ico 4 r ggplot2 gridextra r-grid

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

在此处输入图片说明

代表 例如

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)
    )
}
Run Code Online (Sandbox Code Playgroud)

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

grid.arrange(grobs=p[1:5],layout_matrix=layout)
Run Code Online (Sandbox Code Playgroud)

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

marrangeGrob(grobs=p,nrow=4,ncol=2)
Run Code Online (Sandbox Code Playgroud)

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

bap*_*ste 5

这似乎有效,

marrangeGrob(grobs=p, nrow=1, ncol=5, layout_matrix=layout)
Run Code Online (Sandbox Code Playgroud)

(偶然地)

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