Với grid.arrangetôi có thể sắp xếp nhiều ggplothình trong một lưới để đạt được một hình nhiều bảng bằng cách sử dụng một cái gì đó như:
library(ggplot2)
library(grid)
library(gridExtra)
tạo một số lô ggplot2, sau đó
plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)
Làm cách nào để có được bố cục 2 ô 'không cân bằng' với một ô trong toàn bộ ô đầu tiên và ba ô trong ô thứ hai? Tôi đã đùa giỡn với cách tiếp cận 'lưới ô vuông' bằng cách cố gắng sử dụng grid.arrangeđể vẽ một ô lưới (ví dụ: plot5ở trên) với một ô khác, nhưng đã thu được:
Lỗi trong layoutGrob (..., as.table = as.table, clip = clip, main = main,: input phải là grobs!
Cập nhật:
Cảm ơn vì lời khuyên. Tôi sẽ xem xét viewportsvà grid. Trong khi đó, nhờ có @DWin, layOuthàm trong gói 'wq' hoạt động rất tốt cho hình biên dịch trong Sweavetài liệu của tôi :

Cập nhật 2:
Các arrangeGroblệnh (theo đề nghị của @baptiste) cũng hoạt động tốt, và có vẻ rất trực quan - ít nhất đó là dễ dàng để độ rộng của alter làm hai cột. Nó cũng có lợi ích là không yêu cầu gói `wq '.
ví dụ Đây là mã từ tệp Sweave của tôi:
<<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}
tạo ra kết quả sau:

BTW, Có ai cho tôi biết tại sao '> NA' xuất hiện không?
grid. Xem thêm cuốn sách ggplot2 của Hadley, Phần 8.4.2.
grid.arrangecó thể được sử dụng với các khung nhìn lồng nhau bằng cách sử dụng đồng hành của nó arrangeGrob(về cơ bản trả về a gTree), như trong ví dụ tôi đưa ra bên dưới.
plot5là không bắt buộc vì grid.arrangekhông trả về (NULL). Nếu bạn muốn lưu lại kết quả sử dụng háng arrangeGrob(và grid.drawđể hiển thị nó).



grid.arrangecó thể không đủ linh hoạt (tìm kiếm stackoverflow cho "[r] lưới chế độ xem")