За допомогою 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, вище) проти іншої ділянки, але отримав:
Помилка в submitGrob (..., as.table = as.table, clip = clip, main = main,: введення має бути grobs!
Оновлення:
Дякую за пораду. Я розгляну viewportsі grid. Тим часом, завдяки @DWin, layOutфункція в пакеті 'wq' дуже добре працювала для рисунку компіляції в моєму Sweaveдокументі:

Оновлення 2:
arrangeGrobКоманда (як це було запропоновано @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}
який дає такий результат:

До речі, хто-небудь скаже мені, чому з'являється '> NA'?
grid. Див. Також книгу Хадлі ggplot2, розділ 8.4.2.
grid.arrangeможна використовувати з вкладеними вікнами перегляду, використовуючи його супутник arrangeGrob(по суті, повертаючи a gTree), як у прикладі, який я навів нижче.
plot5не потрібно, оскільки grid.arrangeнічого не повертає (NULL). Якщо ви хочете зберегти отриманий grob, використовуйте arrangeGrobще раз (і grid.drawвідобразити його).



grid.arrangeможливо, недостатньо гнучко (шукайте stackoverflow для "[r] сітки перегляду")