Как понизить основной заголовок в grid.arrange от gridExtra?

Я создал диаграмму, используя grid.arrange от gridExtra, и попытался добавить основной заголовок для всего графика, прежде чем сохранить его в файле .png.

Использование аргумента main="TITLE" работает, но он сливается с верхней границей, независимо от высоты, которую я установил на диаграмме.

Мой вопрос: как сделать так, чтобы основной заголовок не совпадал с верхней границей? Одним из способов было бы добавить общее поле ко всей диаграмме, но опять же, я не смог понять как.

В качестве примера я изменил код SandyMuspratt и Baptiste из grid организовать размещение таблицы и графика на одном изображении:

library(ggplot2)
library(gridExtra)

x = read.table(text = "
               1/1/2010 10
               1/2/2010 20
               1/3/2010 15
               1/4/2010 56
               1/5/2010 46
               1/6/2010 15
               1/8/2010 15
               1/9/2010 15
               1/10/2010 20
               1/11/2010 15
               1/12/2010 15
               1/13/2010 40
               1/14/2010 15
               1/15/2010 15
               1/16/2010 70", sep = "", header = FALSE)

p1<-ggplot(x, aes(V2, V1)) + geom_point()
p2<-tableGrob(x)

png( filename = "TEST.png", width = 1700, height = 900, units = "px")
grid.arrange(p2, p1, main=textGrob("Total Data and Image", gp=gpar(cex=3)), 
             ncol = 2,widths=unit.c(grobWidth(p2), unit(1,"npc") - grobWidth(p2)))
dev.off()

Вывод PNG для отображения заголовка с рамкой: PNG Output

Я подозреваю, что решение может быть довольно простым, но я не могу найти решение в Интернете. Я прочитал ?grid.arrange, Добавление текста в график grid.table и другие посты, но ни один из них не упоминал об этом.

Любая помощь будет оценена и спасибо заранее!


person NoviceProg    schedule 16.01.2014    source источник


Ответы (1)


?textGrob подсказывает:

main=textGrob("Total Data and Image", gp=gpar(cex=3), just="top")

Изменить (16.07.2015): с gridExtra >= 2.0.0 параметр main был переименован в top. Подробнее см. ?arrangeGrob.

person tonytonov    schedule 16.01.2014
comment
Спасибо, @tonytonov! Так что я все-таки искал ответ не в том месте! Если я могу немного изменить ваш ответ, использование vjust=0.7 вместо just="top" поместило бы заголовок прямо в середину вертикального пробела. - person NoviceProg; 16.01.2014