r - ggplot2:在绘图少于视口(viewport)的网格上绘图

标签 r ggplot2 gridextra gtable

library( ggplot2 )
library( gridExtra )
p1 <- qplot( rnorm( 10 ), rnorm( 10 ) )
p2 <- qplot( rnorm( 10 ), rnorm( 10 ) )
p3 <- qplot( rnorm( 10 ), rnorm( 10 ) )
p4 <- qplot( rnorm( 10 ), rnorm( 10 ) )
p5 <- qplot( rnorm( 10 ), rnorm( 10 ) )
grid.arrange( p1, p2, p3, p4, p5, nrow=2 )

我想将底部的两个地 block 居中。怎么能做到这一点?我可以使用 split.screen但我无法弄清楚如何使用 ggplot2 . ggplot2有更酷的图形。

提前致谢!

PK

最佳答案

您可以使用 gtable用于灵活方便的网格布局的包,或者简单地嵌套两个arrangeGrob,

ng = nullGrob()
grid.arrange(arrangeGrob(p1, p2, p3, nrow=1),
             arrangeGrob(ng, p4, p5, ng, nrow=1, widths=c(0.5, 1, 1, 0.5)),
             nrow=2)

enter image description here

编辑:对于跨越整个宽度的底部图,您只需删除上述解决方案中的虚拟 nullGrobs() :
grid.arrange(arrangeGrob(p1, p2, p3, nrow=1),
             arrangeGrob(p4, p5, nrow=1),
             nrow=2)

enter image description here

关于r - ggplot2:在绘图少于视口(viewport)的网格上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16796260/

相关文章:

R 使用 apply() 或 lapply() 等加速 for 循环

r - 有没有办法向ggmap添加比例尺(用于线性距离)?

r - 当使用 `scale_x_log10` 时,如何将 `geom_text` 准确映射到 `geom_bin2d` ?

r - 这些数据集之间使用 R 进行深度学习的 MAE 结果存在差异的原因是什么?

r - 如何旋转/取消旋转(类型转换/熔化)数据框?

r - 在 ggplot2 中翻转/转置热图

r - 忽略未知的美学 : text in ggplot (using numbers or letters as points)

grid - 使用 grid.arrange 为使用 gridExtra::grid.arrange 制作的多个图添加标题

r - 使用 ggplot 在一页上绘制多个图

R网格额外: modify theme on the fly for a single tableGrob?