由'plot'和'ggplot'并排生成的图

时间:2012-10-23 00:13:49

标签: r plot ggplot2 par

有没有办法将plot函数生成的绘图和R中的ggplot函数的绘图并排放在一页?

使用parmultiplot函数很容易将同一函数创建的绘图放入一个页面,但我无法弄清楚上述问题。

2 个答案:

答案 0 :(得分:26)

您可以使用gridBase包和viewPorts。

执行此操作
library(grid)
library(gridBase)
library(ggplot2)

# start new page
plot.new() 

# setup layout
gl <- grid.layout(nrow=1, ncol=2)
# grid.show.layout(gl)

# setup viewports
vp.1 <- viewport(layout.pos.col=1, layout.pos.row=1) 
vp.2 <- viewport(layout.pos.col=2, layout.pos.row=1) 
# init layout
pushViewport(viewport(layout=gl))
# access the first position
pushViewport(vp.1)

# start new base graphics in first viewport
par(new=TRUE, fig=gridFIG())

plot(x = 1:10, y = 10:1)

# done with the first viewport
popViewport()

# move to the next viewport
pushViewport(vp.2)

ggplotted <- qplot(x=1:10,y=10:1, 'point')
# print our ggplot graphics here
print(ggplotted, newpage = FALSE)

# done with this viewport
popViewport(1)

enter image description here

此示例是this blog post

Dylan Beaudette的修改版本

答案 1 :(得分:2)

是。它们都是基于网格的图形系统和返回图形对象。看一下gridExtra包中的grid.arrange函数