удалить границы из grid.arrange

Я комбинирую графики multip ggplot, используя функцию grid.arrange из пакета gridExtra.

Я делаю это:

p1<-ggplot(x, aes(Date, Value)) + geom_line()
p2<-ggplot(y, aes(Date, Score)) + geom_point()
grid.arrange(p1, p2,  main=textGrob("Head Line", gp=gpar(cex=1.5, fontface="bold", col="#990000")), ncol = 1, clip=TRUE)

эта команда помещает границу между p1 и p2. Я не смог найти информацию об удалении границ в grid.arrange. Можно ли убрать границы?


person user1471980    schedule 05.12.2012    source источник


Ответы (2)


gridExtra не ставит никакой дополнительной границы между участками. Все, что вы видите, это границы, которые уже окружают каждый участок. То есть есть граница внизу p1 и граница вверху p2. Соедините их вместе, и может показаться, что между ними есть дополнительное пространство.

Чтобы удалить или настроить границы каждого графика, используйте элемент plot.margin в функции theme. Следующее удаляет нижнее поле p1 и верхнее поле p2.

library(ggplot2)
library(gridExtra)

p1<-ggplot(data.frame(x = 1:10, y = 1:10), aes(x, y)) + geom_line() +
      theme(plot.margin = unit(c(1,1,0,1), "lines"))

p2<-ggplot(data.frame(x = 1:10, y = 1:10), aes(x, y)) + geom_point() +
   theme(plot.margin = unit(c(0,1,1,1), "lines"))

grid.arrange(p1, p2,  top=textGrob("Head Line", 
     gp=gpar(cex=1.5, fontface="bold", col="#990000")), ncol = 1, clip=TRUE)

введите здесь описание изображения

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

person Sandy Muspratt    schedule 05.12.2012

Немного поздно, но у меня была такая же проблема, и я думаю, что нашел решение. plot.margin не помог, но настройка panel.border и plot.background (цвет аргументов и заливка) на цвет фона графика помогла.

person Martín Pons    schedule 24.08.2020
comment
Пожалуйста, добавьте простой пример того, что вы предложили. - person Michael Sidoroff; 24.08.2020