在同一页面上排列基础图和grid.tables

时间:2014-08-07 21:47:18

标签: r pdf r-grid

我有2个图(使用基本图形创建)和2个数据框,我想将它们组合到PDF中的一个工作表上。我正在使用grid.table从我的数据框创建一个tableGrobs。我在格式化PDF输出时遇到了很多困难。特别是,我没有成功将所有对象保存在同一页面上。我希望右侧面板包含一个图形,左侧面板包含另一个图形,下面有2个表格(横向格式)。

目前我的代码如下:

library('gridExtra')

pdf("Rplots.pdf", paper = "USr", height = 8.5, width = 11)

layout(matrix(c(1,3, 2,3, 4,3), nrow = 3, ncol = 2, byrow = TRUE))

plot(myPlot1)    
grid.table(df1)    
plot(myPlot2)
grid.table(df2)

dev.off()

想要使用ggplot2。

1 个答案:

答案 0 :(得分:17)

要合并base图和grid个对象,gridBase包非常有用。

基于上面布局的粗略工作示例

library(grid)
library(gridBase)
library(gridExtra)


layout(matrix(c(1,3, 2,3, 4,3), nrow = 3, ncol = 2, byrow = TRUE))

# First base plot
plot(1:10)

# second base plot 
frame()
# Grid regions of current base plot (ie from frame)
vps <- baseViewports()
pushViewport(vps$inner, vps$figure, vps$plot)
# Table grob
grob <-  tableGrob(iris[1:2,1:2])  
grid.draw(grob)

popViewport(3)

# third base plot
plot(1:10)

# fourth
frame()
vps <- baseViewports()
pushViewport(vps$inner, vps$figure, vps$plot)  
grid.draw(grob)
popViewport(3)

哪个给出了

enter image description here