아마도 당신은 layout.pos.row 및 layout.pos.col로 할 수 없습니다.
vpvp <- function(pos.col, pos.row){
cvp <- current.viewport()
nrow <- cvp$layout$nrow
ncol <- cvp$layout$ncol
w <- unit(1/ncol, "npc")
h <- unit(1/nrow, "npc")
x <- unit((pos.col-0.5)/ncol, "npc")
y <- unit(1-(pos.row-0.5)/nrow, "npc")
viewport(x=x, y=y, width=w, height=h)
}
grid.newpage()
pushViewport(viewport(layout=grid.layout(2, 3)))
grid.rect(gp=gpar(fill=1),vp=viewport(layout.pos.col=1,layout.pos.row=1))
grid.rect(gp=gpar(fill=2),vp=viewport(layout.pos.col=1,layout.pos.row=2))
grid.rect(gp=gpar(fill=3),vp=viewport(layout.pos.col=2,layout.pos.row=1))
grid.rect(gp=gpar(fill=4),vp=viewport(layout.pos.col=2,layout.pos.row=2))
grid.rect(gp=gpar(fill=5),vp=viewport(layout.pos.col=3,layout.pos.row=1))
grid.rect(gp=gpar(fill=6),vp=viewport(layout.pos.col=3,layout.pos.row=2))
pushViewport(vpvp(pos.col=2.5, pos.row=1.5))
grid.rect(gp=gpar(fill="white"))
: 또한
grid.newpage()
pushViewport(viewport(layout=grid.layout(2, 2)))
grid.rect(gp=gpar(fill=1),vp=viewport(layout.pos.col=1,layout.pos.row=1))
grid.rect(gp=gpar(fill=2),vp=viewport(layout.pos.col=1,layout.pos.row=2))
grid.rect(gp=gpar(fill=3),vp=viewport(layout.pos.col=2,layout.pos.row=1))
grid.rect(gp=gpar(fill=4),vp=viewport(layout.pos.col=2,layout.pos.row=2))
pushViewport(viewport(x=unit(0.5, "npc"), width=unit(0.5, "npc"),
y=unit(0.75, "npc"), height=unit(0.5, "npc")))
grid.rect(gp=gpar(fill="white"))
, 당신이 이런 식으로 두 번에 pos.col 및 pos.row를 지정하여이 작업을 수행 래퍼 함수를 작성할 수 있다고 생각 : 간단한 해결 방법은 위치와 크기를 지정하는 것입니다
빠른 답변 주셔서 감사합니다. 나는 이것을 밖으로 시험 할 것이다. –
안녕하세요, 편집 된 함수 vpvp()는 할 수 있지만 viewport()에 대한 대부분의 옵션은 무시됩니다. – kohske
코드 예를 들어 주셔서 감사합니다. 이제 작동합니다! –