当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R grid.grab 抓取当前电网输出


R语言 grid.grab 位于 grid 包(package)。

说明

从当前网格显示列表或用户指定代码生成的场景创建 gTree 对象。

用法

grid.grab(warn = 2, wrap = wrap.grobs, wrap.grobs = FALSE, ...)
grid.grabExpr(expr, warn = 2, wrap = wrap.grobs, wrap.grobs = FALSE, 
              width = 7, height = 7, device = offscreen, ...)

参数

expr

要计算的表达式。通常,一些对网格绘制函数的调用。

warn

一个整数,指定要发出的警告数量。 0 表示不发出警告,1 表示在确定抓取不会忠实再现原始场景时发出警告。 2 表示如果抓取有可能无法忠实再现原始场景,则发出警告。

wrap

指示如何捕获输出的逻辑。如果是 TRUE ,则通过将显示列表中的每个非 grob 元素包装在 grob 中来捕获它。

wrap.grobs

一个逻辑,指示如果我们包装元素(wrap=TRUE),我们是否应该包装 grobs(或只是包装视口)。

width, height

用于临时渲染的设备的大小。

device

打开图形设备进行临时渲染的函数。默认情况下,这是一个 off-screen,基于 pdf 设备的内存设备,但在使用自定义字体时,此默认设备可能无法令人满意。

...

传递给 gTree 的参数,例如,所创建的 gTree 的名称和/或类。

细节

有四种方法可以将网格输出捕获为 gTree。

有两个用于捕获输出的函数:使用 grid.grab 捕获现有绘图,使用 grid.grabExpr 捕获表达式的输出(不绘制任何内容)。

对于每个函数,可以通过两种方式捕获输出。一种方法是尝试巧妙地制作一个带有childrenvp槽的gTree,其中包含显示列表上的所有视口(包括弹出的视口)以及显示列表上的每个grob作为新gTree的子级;每个子项在 vp 槽中都有一个 vpPath,以便在适当的视口中绘制它。换句话说,gTree 包含显示列表上的所有元素,但形式略有改变。

另一种方法 wrap=TRUE 是为显示列表上的每个元素创建一个 grob(并使所有这些 grobs 成为 gTree 的子元素)。仅视口被包装,除非 wrap.grobs 也是 TRUE

第一种方法创建了一个更紧凑、更优雅的 gTree,它使用起来更灵活,但不能保证忠实地复制所有可能的网格输出。第二种方法更暴力,更难使用,但更有可能复制原始输出。

不会通过使用 wrap.grobs=TRUE 进行包装来复制的情况示例是一个场景,其中一个 grob 的放置依赖于另一个 grob(例如,通过 grobXgrobWidth )。

一个 gTree 对象。

例子

pushViewport(viewport(width=.5, height=.5))
grid.rect()
grid.points(stats::runif(10), stats::runif(10))
popViewport()
grab <- grid.grab()
grid.newpage()
grid.draw(grab)

也可以看看

gTree

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Grab the current grid output。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。