Dengan grid.arrange
saya dapat mengatur banyak ggplot
gambar dalam kotak untuk mencapai gambar multi-panel dengan menggunakan sesuatu seperti:
library(ggplot2)
library(grid)
library(gridExtra)
buat beberapa plot ggplot2, lalu
plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)
Bagaimana saya bisa mendapatkan tata letak 2 kolom yang 'tidak seimbang' dengan satu plot di seluruh kolom pertama dan tiga plot di kolom kedua? Saya bermain-main dengan pendekatan 'grid-of-grids' dengan mencoba menggunakan grid.arrange
untuk memplot satu grid (misalnya plot5
, di atas) terhadap plot lain, tetapi memperoleh:
Kesalahan dalam mengaturGrob (..., as.table = as.table, clip = clip, main = main,: input harus grobs!
Memperbarui:
Terima kasih atas sarannya. Saya akan memeriksa viewports
dan grid
. Sementara itu, terima kasih kepada @DWin, layOut
fungsi dalam paket 'wq' bekerja sangat baik untuk gambar kompilasi di Sweave
dokumen saya :
Perbarui 2:
Itu arrangeGrob
perintah (seperti yang disarankan oleh @baptiste) juga bekerja dengan baik, dan tampaknya sangat intuitif - setidaknya itu mudah untuk lebar alter dari dua kolom. Ini juga memiliki keuntungan karena tidak membutuhkan paket `wq '.
mis. Ini kode dari file Sweave saya:
<<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}
yang menghasilkan keluaran sebagai berikut:
BTW, Ada yang bilang kenapa '> NA' muncul?
grid.arrange
mungkin tidak cukup fleksibel (penelusuran stackoverflow untuk "[r] grid viewport")