2014-07-23 95 views
0

我希望用R產生一個1頁的報告是進行佈局如下編寫情節加上表:報告1頁

左上:
地塊1個地塊2
積3分積4

Topright: 情節5(4倍那樣大的曲線1:4)

Bottomright:

此頁面將重新運行~100次,以便報告的每個頁面都是相同的,但每個頁面僅用於此情況下的不同存儲。

我一直希望能爲這5個地塊使用ggplot。我可以單獨生成所有6個項目,但我真的不知道如何將它們整齊地放置在上面的佈局中的1頁上。

我讀了一點LaTex,但不知道是否我只是在浪費時間。我喜歡基地layout()par(mfrow)的能力,但我不知道該怎麼做,因爲我需要ggplot2地塊的類似功能。

所以左上4個地塊可以使用像這樣做:

library(gridExtra) 
grid.arrange(plot1,plot2,plot3,plot4,ncol=2,nrow=2) 

我真正需要的是一樣的東西

grid.arrange(plot1,plot2,(no plot),(no plot),plot3,plot4,(no plot),(no plot), 
                   ncol=4,nrow=3) 

像這樣的事情會在準備情節區域的積5分右上並留下底部的空間以供桌子使用。

所以我的問題是

  1. 是我怎麼會得到圖1:4(同尺寸)和積5分(4倍大如圖表1:4)使用GGPLOT2地塊全部到頁面上,按計劃進行?
  2. 我怎樣才能在右下角找到一張桌子?

我喜歡這個表的外觀:從gridExtragrid.table功能。

我需要的表格是6行* 5列。喜歡的東西:

grid.table(head(iris)) 

唯一的問題是,它總是被扔進右邊到中間,我不知道如何讓它位於右下角的控制。

有什麼建議嗎?

+0

1)[此功能(HTTP://www.cookbook-r。com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/)有一個'layout'參數,它可以模擬基本的佈局。 2)什麼樣的桌子? – rawr

+1

[some ideas here](http://stackoverflow.com/a/18451562/471093) – baptiste

回答

3

我想你可以使用嵌套的arrangeGrob創建你想要的東西。讓我來舉例說明:

library(ggplot2) 
library(gridExtra) 

# create a dummy ggplot and its gtable 
g <- ggplot(mtcars, aes(wt, mpg)) + geom_point() 
gt <- ggplot_gtable(ggplot_build(g)) 
gt$layout$clip[gt$layout$name=="panel"] <- "off" 

# create a table grob 
my_table <- tableGrob(head(mtcars)) 

# arrange the 5 plots and the table 
grid.arrange(arrangeGrob(
      arrangeGrob(gt, gt, gt, gt, ncol=2), ## 4 top left panels 
         gt, ncol=2),    ## 1 top right panel 
         my_table, nrow=2) ## bottom table 

enter image description here