У меня есть три сюжета, и я стараюсь объединить их с grid.arrange. Последний график должен иметь меньшую высоту, чем первые два графика, и все графики должны иметь одинаковую ширину.
Рабочий пример:
p1 <- qplot(mpg, wt, data=mtcars)
p2 <- p1
p3 <- p1 + theme(axis.text.y=element_blank(), axis.title.y=element_blank())
grid.arrange(arrangeGrob(p1,p2, ncol=1, nrow=2),
arrangeGrob(p3, ncol=1, nrow=1), heights=c(4,1))
Здесь последний график имеет большую ширину, чем первые два. В моих реальных данных, даже если я сохраняю текст и заголовок по оси y, у меня все еще есть другая ширина для третьего графика.
Я попытался добавить "widths":
grid.arrange(arrangeGrob(p1,p2, ncol=1, nrow=2),
arrangeGrob(p3, ncol=1, nrow=1), heights=c(4,1), widths=c(2,1))
Но он превращается в график двух столбцов...
Я также попробовал другой код:
p1 <- ggplotGrob(p1)
p2 <- ggplotGrob(p2)
p3 <- ggplotGrob(p3)
#
stripT <- subset(p2$layout, grepl("spacer", p2$layout$name))
p3 <- p3[-stripT$t, ]
grid.draw(rbind(p1, p2, p3, size = "first"))
У меня одинаковые ширины, но теперь я не знаю, как изменить высоту...
Ну, может кто-нибудь поможет мне объединить как аспекты высоты, так и ширины для окончательного сюжета?