grid,gridBase:如何在不同区域绘图?

grid,gridBase:如何在不同区域绘图?,grid,plot,Grid,Plot,我想用网格指定的布局在四个区域内创建R图。此外,应使用gridBase使用基本图形实际绘制区域。下面是一个例子。问题是,这4个图不是在四个不同的区域中绘制的,而是重叠的 require(grid) require(gridBase) ## set up the grid layout gl <- grid.layout(2, 2, widths=unit(c(3, 3), "inches"), heights=unit(c(3, 3), "inches")) push

我想用网格指定的布局在四个区域内创建R图。此外,应使用gridBase使用基本图形实际绘制区域。下面是一个例子。问题是,这4个图不是在四个不同的区域中绘制的,而是重叠的

require(grid)
require(gridBase)

## set up the grid layout
gl <- grid.layout(2, 2, widths=unit(c(3, 3), "inches"),
          heights=unit(c(3, 3), "inches"))
pushViewport(viewport(layout=gl)) # use this layout in a viewport

## plot
par. <- par(no.readonly=TRUE) # save plot settings
vps <- baseViewports() # create list of grid viewports corresponding to inner, figure, and plot regions
pushViewport(vps$inner, vps$figure, vps$plot)
for(i in 1:2) { # rows
    for(j in 1:2) { # columns
        pushViewport(viewport(layout.pos.row=i, layout.pos.col=j))
        par(plt=gridPLT(), new=TRUE)
        x <- 1:10
        plot(x, x+runif(10), type="b")
        upViewport()
    }
}
par(par.) # reset plot settings
require(网格)
require(gridBase)
##设置网格布局
gl这似乎有效:

require(grid)
require(gridBase)

gl <- grid.layout(2, 2, widths=unit(c(3, 3), "inches"),
          heights=unit(c(3, 3), "inches"))
pushViewport(viewport(layout=gl))

par. <- par(no.readonly=TRUE)
for(i in 1:2) {
    for(j in 1:2) {
        pushViewport(viewport(layout.pos.row=i, layout.pos.col=j))
        par(plt=gridPLT())
        x <- 1:10
        plot(x, x+runif(10), type="b", xlab="", ylab="")
        par(new=TRUE) # to be run after first plot
        upViewport()
    }
}
par(par.)
require(网格)
require(gridBase)

gl我遇到此错误:
无法弹出顶层视口,网格和图形混合?