Как я могу получить "несбалансированную" сетку ggplots?

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

library(ggplot2)
library(grid)
library(gridExtra)

сгенерируйте несколько графиков ggplot2, затем

plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)

Как я могу получить «несбалансированный» макет в 2 столбца с одним графиком во всем первом столбце и тремя графиками во втором столбце? Я играл с подходом «сетка сеток», пытаясь использовать grid.arrange для построения одной сетки (например, plot5 , выше) против другого графика, но получено:

Ошибка в аранжировкеGrob (..., as.table = as.table, clip = clip, main = main,: ввод должен быть grobs!

Обновление:

Спасибо за совет.Я изучу области просмотра и сетку . Тем временем, благодаря @DWin, функция layOut в пакете 'wq' очень хорошо работала для рисунка компиляции в моем документе Sweave : enter image description here

Обновление 2:

Команда rangeGrob (предложенная @baptiste) также хорошо работает и кажется очень интуитивно понятной - по крайней мере, было легко изменить ширину двух столбцов. Он также имеет то преимущество, что не требует пакета `wq '.

например. Вот код из моего файла Sweave:

<<label=fig5plot, echo=F, results=hide>>=
plot5<-grid.arrange(plot4, arrangeGrob(plot1, plot2, plot3, ncol=1), 
                    ncol=2, widths=c(1,1.2))
@
\begin{figure}[]
    \begin{center}
<<label=fig5,fig=TRUE,echo=T, width=10,height=12>>=
<<fig5plot>>
@
\end{center}
\caption{Combined plots using the `arrangeGrob' command.}
\label{fig:five}
\end{figure}

, который дает следующий результат: enter image description here

Кстати, кто-нибудь скажет мне, почему появляется '> NA'?

93
задан markus 16 July 2018 в 06:39
поделиться