1

Rグリッドグラフィックスでは、グロブオブジェクトをグロブツリーでクリップするにはどうすればよいですか? grid.drawある意味で、クリップされたグロブをプロットするために呼び出すだけで済みます。

たとえば、自分のものを直接プロットする場合:

# Direct plotting ----

library(grid)

grid.newpage()
vp <- viewport(x = 0.25, y = 0.25, width = 0.5,height = 0.5,
               just = c("left", "bottom"), name = "vp")
pushViewport(vp)

grid.rect()
grid.polygon(x = c(0.4,0.9, 1.4, 0.9), y = c(0.5, 0.75, 0.5, 0.25), 
             gp = gpar(lty = 3))

grid.clip()

grid.polygon(x = c(0.4,0.9, 1.4, 0.9), y = c(0.5, 0.75, 0.5, 0.25), 
             gp = gpar(fill = "grey"))

クリップされたバージョンを取得します。

ここに画像の説明を入力

しかし、それを grobTree オブジェクトに入れようとすると (後で操作するために)、機能しません:


# Indirect plotting ----

library(grid)

aGrob <- grobTree()

vp <- viewport(x = 0.25, y = 0.25,,width = 0.5,,height = 0.5,
               just = c("left", "bottom"), name = "vp")

r1 <- rectGrob(vp = vp)
p1 <- grid.polygon(x = c(0.4,0.9, 1.4, 0.9), y = c(0.5, 0.75, 0.5, 0.25), 
                   gp = gpar(lty = 3), vp = vp)

c1 <- clipGrob(vp = vp)

p2 <- grid.polygon(x = c(0.4,0.9, 1.4, 0.9), y = c(0.5, 0.75, 0.5, 0.25), 
                   gp = gpar(fill = "grey"), vp = vp)

aGrob <- grobTree(aGrob, r1, p1, c1, p2)

grid.newpage()

grid.draw(aGrob)

クリップされていないバージョンを取得します。

ここに画像の説明を入力

grobTree オブジェクトにクリップされたバージョンを含めるにはどうすればよいですか?

4

1 に答える 1