Comment puis-je obtenir un "déséquilibré" grille de ggplots?
Avec grid.arrange
je peux organiser plusieurs ggplot
chiffres dans une grille afin de réaliser un multi-panneau de la figure en utilisant quelque chose comme:
library(ggplot2)
library(grid)
library(gridExtra)
générer des ggplot2 parcelles , puis
plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)
Comment puis-je obtenir un "asymétriques" 2 col de mise en page avec une parcelle de terrain dans l'ensemble du premier col et trois parcelles dans le deuxième col?
J'ai joué avec une "grille de grilles' approche en essayant de l'utiliser grid.arrange
de tracer une grille (par exemple,plot5
, ci-dessus) contre une autre parcelle, mais obtenus:
Erreur dans arrangeGrob(..., comme.table = que.tableau, clip: clip, main = main, :
d'entrée doit être grobs!
Mise à jour:
Merci pour les conseils. Je vais regarder dans viewports
et grid
. En attendant, merci à @DWin, le layOut
fonction dans le 'qe' package très bien fonctionné pour la compilation figure dans mon Sweave
document:
Mise à jour 2:
La arrangeGrob
de commande (comme suggéré par @baptiste) fonctionne aussi bien, et semble très intuitive, au moins, il était facile de modifier la largeur des deux colonnes. Il a également l'avantage de ne pas nécessiter le `qe' paquet.
par exemple, Voici le code à partir de mon Sweave fichier:
<<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 dire pourquoi la ">NA " qui s'affiche?
- Vous pourriez avoir à configurer les fenêtres vous-même --
grid.arrange
pourrait ne pas être assez souples (recherche stackoverflow pour "[r] de la grille de fenêtre") - A fait vous dans une fructueuse direction à l'aide de
grid
. Voir aussi Hadley du ggplot2 livre, Section 8.4.2. grid.arrange
peut être utilisé avec imbriqués les fenêtres à l'aide de son compagnonarrangeGrob
(essentiellement le retour d'ungTree
), comme dans l'exemple que j'ai donné ci-dessous.- votre affectation définitive à
plot5
n'est pas nécessaire quegrid.arrange
ne retourne rien (NULL). Si vous souhaitez enregistrer le résultat grob utilisationarrangeGrob
à nouveau (etgrid.draw
pour l'afficher).
Vous devez vous connecter pour publier un commentaire.
grid.arrange
dessine directement sur l'appareil; si vous souhaitez les combiner avec d'autres de la grille objets que vous devezarrangeGrob
, comme dansModifier (07/2015): avec v>2.0.0 vous pouvez utiliser le
layout_matrix
argument,cbind(c(1,1,1), c(2,3,4))
matrice décrit la disposition des chiffres?J'ai essayé de trouver avec grille et de la pensée, je l'ai eu vers le bas, mais a fini par défaut (bien que maintenant, le code dans la fonction que j'ai citer ci-dessous, je peux voir que j'ai été vraiment proche ... 🙂
Le 'qe' paquet a une
layOut
fonction qui va le faire pour vous:g1
,g2
, etc pour tousp1
?Une autre alternative est le
patchwork
paquet par Thomas Lin Pedersen.Générer quelques parcelles.
Maintenant en mesure d'organiser les parcelles.
Il est également multipanelfigure paquet qui vaut la peine de mentionner. Voir aussi ce réponse.
Créé sur 2018-07-16 par le reprex paquet (v0.2.0.9000).