Dzięki grid.arrange
mogę ułożyć wiele ggplot
figur w siatce, aby uzyskać figurę wielopanelową, używając czegoś takiego:
library(ggplot2)
library(grid)
library(gridExtra)
wygeneruj więc kilka wykresów ggplot2
plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)
Jak mogę uzyskać „niezrównoważony” układ 2-kolumnowy z jednym wykresem w całej pierwszej kolumnie i trzema wykresami w drugiej kolumnie? Bawiłem się podejściem „siatki sieci”, próbując grid.arrange
wykreślić jedną siatkę (np. plot5
Powyżej) z innym wykresem, ale uzyskałem:
Błąd w aranżacji Grob (..., as.table = as.table, clip = clip, main = main,: wejście musi być grobami!
Aktualizacja:
Dzięki za radę. Zajrzę do viewports
i grid
. W międzyczasie dzięki @DWin layOut
funkcja w pakiecie 'wq' działała bardzo dobrze na figurze kompilacji w moim Sweave
dokumencie:
Aktualizacja 2:
arrangeGrob
Poleceń (jak sugeruje @baptiste) również działa dobrze, i wydaje się bardzo intuicyjny - przynajmniej to było łatwe do zmiany szerokości dwóch kolumnach. Ma również tę zaletę, że nie wymaga pakietu `wq '.
np. Oto kod z mojego pliku 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}
co daje następujący wynik:
BTW, ktoś mi powie, dlaczego pojawia się '> NA'?
grid.arrange
może nie być wystarczająco elastyczne (