如何在grid.newpage中使用R基础图?

Mik*_*kko 6 plot r r-grid

是否有可能"强制" grid包装中的R基础图grid.newpage?例如,这工作正常:

library(grid)
grid.newpage()
vp1 <- viewport(x=0,y=0.5,width=0.5, height=0.5, just = c("left", "bottom"))
vp2 <- viewport(x=0.5,y=0,width=0.5, height=0.5, just = c("left", "bottom"))
pushViewport(vp1)
grid.rect()
grid.text("vp1", 0.5, 0.5)
upViewport()
pushViewport(vp2)
grid.rect()
grid.text("vp2", 0.5, 0.5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述.

但如果我尝试这样的事情:

grid.newpage()
vp1 <- viewport(x=0,y=0.5,width=0.5, height=0.5, just = c("left", "bottom"))
vp2 <- viewport(x=0.5,y=0,width=0.5, height=0.5, just = c("left", "bottom"))
pushViewport(vp1)
grid.rect()
print(plot(1,2))
grid.text("vp1", 0.5, 0.5)
upViewport()
pushViewport(vp2)
grid.rect()
print(plot(1,2))
Run Code Online (Sandbox Code Playgroud)

R基础情节刚刚过度骑行grid.newpage.使用par(new=T)也无济于事.

Mik*_*kko 6

因为没有人回答这个问题,我会自己做.正如安德里所说,这个问题的答案就在这里.你需要gridFIG()gridBase包中绘制函数来绘制R基础图plot.new()而不是grid.newpage():

library(grid)
library(gridBase)
plot.new()
vp1 <- viewport(x=0,y=0.5,width=0.5, height=0.5, just = c("left", "bottom"))
vp2 <- viewport(x=0.5,y=0,width=0.5, height=0.5, just = c("left", "bottom"))
pushViewport(vp1)
grid.rect()
grid.text("vp1", 0.5, 0.5)
par(new=TRUE, fig=gridFIG())
plot(1,2)
upViewport()
pushViewport(vp2)
grid.rect()
grid.text("vp2", 0.5, 0.5)
par(new=TRUE, fig=gridFIG())
plot(1,2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述