使用 grid.arrange
,我可以在一个网格中排列多个 ggplot
图形,通过使用如下方法实现多面板图形:
library(ggplot2)
library(grid)
library(gridExtra)
然后生成一些 ggplot2图
plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)
我怎样才能获得一个“不平衡的”2个地块布局在整个第一个地块和三个地块在第二个地块?
我尝试了一种“网格的网格”方法,试图使用 grid.arrange
来绘制一个网格(如上面的 plot5
)与另一个网格的对比图,但是得到了:
安排 Grob 中的错误(... ,as.table = as.table,clip = clip,main = main,: 输入必须是掠夺!
更新:
谢谢你的建议。我将查看 viewports
和 grid
。同时,多亏了@DWin,‘ wq’包中的 layOut
函数对于我的 Sweave
文档中的编译图非常有效:
更新2:
arrangeGrob
命令(如@Baptiste 建议的那样)也可以很好地工作,而且看起来非常直观——至少可以很容易地改变两列的宽度。它还具有不需要“ wq”包的好处。
下面是我的 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}
其产出如下:
顺便问一下,有人告诉我为什么“ NA”会出现吗?