有没有一种方法可以将具有一系列 grid.* 和视口调用的函数转换为 grob/gTree?
Is there a way to converting a function with a series of grid.* and viewport calls to a grob/gTree?
有没有一种简单的方法可以通过一系列调用 grid.* 函数和视口操作来获取任意函数,例如下面的第一个函数,并取回 gTree/grob 对象,例如生成的对象第二个功能?
我问是因为尝试使用 grid.* 函数逐步创建绘图比使用相当笨拙的语法创建复杂的 gTrees 要容易得多。然而,当你需要在更大的绘图元素或组合图中使用你的绘图时,我倾向于以 gTree 形式使用它们,而不是自己写入绘图设备。
我一直在努力理解 grid
有一段时间了,我觉得即使在深入研究文档之后我还是错过了一些东西,看来必须有一种更简单的创建方法复杂的 gTrees?
library(grid)
plotter <- function(x){
pushViewport(viewport(gp = gpar(fill = "white", col = "black", lwd = 2)))
grid.rect(
width = 0.3, height = 0.8,
gp = gpar(fill = "red")
)
}
grid.newpage()
plotter()
plotter2 <- function(x) {
g <- gTree()
g <- addGrob(
g,
rectGrob(
width = 0.3, height = 0.8,
gp = gpar(fill = "red"),
vp = "vp"
)
)
g$childrenvp <- viewport(name = "vp", gp = gpar(fill = "white", col = "black", lwd = 2))
g
}
grid.newpage()
grid.draw(plotter2())
grid.grab()
函数允许您在生成它的绘图代码之后调用时将现有绘图捕获为 gTree
。
grid.grabExpr()
函数允许捕获 gTree
而无需从如下描述它的表达式中绘制它:
library(grid)
plotter <- function(x) {
grid.grabExpr(expr = {
pushViewport(viewport(gp = gpar(fill = "white", col = "black", lwd = 2)))
grid.rect(
width = 0.3, height = 0.8,
gp = gpar(fill = "red")
)
})
}
grid.newpage()
grid.ls(plotter()) # to see the structure of the gTree
grid.draw(plotter())
有没有一种简单的方法可以通过一系列调用 grid.* 函数和视口操作来获取任意函数,例如下面的第一个函数,并取回 gTree/grob 对象,例如生成的对象第二个功能?
我问是因为尝试使用 grid.* 函数逐步创建绘图比使用相当笨拙的语法创建复杂的 gTrees 要容易得多。然而,当你需要在更大的绘图元素或组合图中使用你的绘图时,我倾向于以 gTree 形式使用它们,而不是自己写入绘图设备。
我一直在努力理解 grid
有一段时间了,我觉得即使在深入研究文档之后我还是错过了一些东西,看来必须有一种更简单的创建方法复杂的 gTrees?
library(grid)
plotter <- function(x){
pushViewport(viewport(gp = gpar(fill = "white", col = "black", lwd = 2)))
grid.rect(
width = 0.3, height = 0.8,
gp = gpar(fill = "red")
)
}
grid.newpage()
plotter()
plotter2 <- function(x) {
g <- gTree()
g <- addGrob(
g,
rectGrob(
width = 0.3, height = 0.8,
gp = gpar(fill = "red"),
vp = "vp"
)
)
g$childrenvp <- viewport(name = "vp", gp = gpar(fill = "white", col = "black", lwd = 2))
g
}
grid.newpage()
grid.draw(plotter2())
grid.grab()
函数允许您在生成它的绘图代码之后调用时将现有绘图捕获为 gTree
。
grid.grabExpr()
函数允许捕获 gTree
而无需从如下描述它的表达式中绘制它:
library(grid)
plotter <- function(x) {
grid.grabExpr(expr = {
pushViewport(viewport(gp = gpar(fill = "white", col = "black", lwd = 2)))
grid.rect(
width = 0.3, height = 0.8,
gp = gpar(fill = "red")
)
})
}
grid.newpage()
grid.ls(plotter()) # to see the structure of the gTree
grid.draw(plotter())