14

我有 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。

4

1 回答 1

21

要组合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)

这使

在此处输入图像描述

于 2014-08-08T01:15:13.877 回答