R: Название макета сетки

Я использую пакет grid для отображения массива таких графиков:

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

Можно ли указать заголовок для всего макета сетки?

Ответ 1

Пример Dummy, основанный на аналогичном SO-вопросе: Поместить название панели мультипликации с ggplot2

  • Сначала создайте макет с требуемым количеством строк + 1 короткий для заголовка:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null"))))   
    
  • Создайте там несколько сюжетов:

    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))
    
  • Добавить заголовок в верхнюю строку:

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

Результат:

enter image description here

Ответ 2

Другой способ:

library(gridExtra)
g = rectGrob() # dummy "plot"
grid.arrange(g, g, g, g, ncol=2, top = "Main Title")