Avec grid.arrangeje peux organiser plusieurs ggplotfigures dans une grille pour obtenir une figure multi-panneaux en utilisant quelque chose comme:
library(ggplot2)
library(grid)
library(gridExtra)
générer des graphiques ggplot2, puis
plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)
Comment puis-je obtenir une disposition à 2 cols «déséquilibrée» avec une parcelle dans tout le premier col et trois parcelles dans le deuxième col? J'ai joué avec une approche `` grille de grilles '' en essayant d'utiliser grid.arrangepour tracer une grille (par exemple plot5, ci-dessus) par rapport à une autre parcelle, mais j'ai obtenu:
Erreur dans arrangeGrob (..., as.table = as.table, clip = clip, main = main,: l'entrée doit être grobs!
Mettre à jour:
Merci pour le conseil. Je vais examiner viewportset grid. En attendant, grâce à @DWin, la layOutfonction du package 'wq' fonctionnait très bien pour la figure de compilation dans mon Sweavedocument:

Mise à jour 2:
La arrangeGrobcommande (comme suggéré par @baptiste) fonctionne également bien et semble très intuitive - au moins, il était facile de modifier les largeurs des deux colonnes. Il a également l'avantage de ne pas nécessiter le paquet `wq '.
Par exemple, voici le code de mon fichier 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}
qui produit la sortie suivante:

BTW, quelqu'un me dit pourquoi le «> NA» apparaît?
grid. Voir aussi le livre ggplot2 de Hadley, Section 8.4.2.
grid.arrangepeut être utilisé avec des fenêtres imbriquées en utilisant son compagnon arrangeGrob(renvoyant essentiellement a gTree), comme dans l'exemple que j'ai donné ci-dessous.
plot5n'est pas requise car grid.arrangene renvoie rien (NULL). Si vous voulez sauvegarder le grob résultant, utilisez à arrangeGrobnouveau (et grid.drawpour l'afficher).



grid.arrangece n'est peut-être pas assez flexible (recherche stackoverflow pour "[r] grid viewport")