13

我正在使用 grid 包来显示一组图,如下所示:

layout <- grid.layout(2, 4)
pushViewport(viewport(layout = layout))
# print various plots

有没有办法为整个网格布局指定一个标题?

4

2 回答 2

18

另一种方式:

library(gridExtra)
g = rectGrob() # dummy "plot"
grid.arrange(g, g, g, g, ncol=2, top = "Main Title")
于 2012-05-27T19:50:19.073 回答
18

基于类似 SO 问题的虚拟示例:Place title of multiplot panel with ggplot2

  1. 首先创建一个具有所需行数 + 1 个短标题的布局:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null"))))   
    
  2. 在那里创建一些图:

    print(ggplot(mtcars, aes(hp)) + geom_histogram(), vp = viewport(layout.pos.row = 2, layout.pos.col = 1:2))
    print(ggplot(mtcars, aes(wt)) + geom_histogram(), vp = viewport(layout.pos.row = 3, layout.pos.col = 1))
    print(ggplot(mtcars, aes(mpg)) + geom_histogram(), vp = viewport(layout.pos.row = 3, layout.pos.col = 2))
    
  3. 在第一行添加标题:

    grid.text("MAIN TITLE", vp = viewport(layout.pos.row = 1, layout.pos.col = 1:2))
    

导致:

在此处输入图像描述

于 2012-05-27T18:56:08.073 回答