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 |
指示如何捕获输出的逻辑。如果是 |
wrap.grobs |
一个逻辑,指示如果我们包装元素( |
width, height |
用于临时渲染的设备的大小。 |
device |
打开图形设备进行临时渲染的函数。默认情况下,这是一个 off-screen,基于 |
... |
传递给 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(例如,通过 grobX
或 grobWidth
)。
值
一个 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)
也可以看看
相关用法
- R grid.group 画一个组
- R grid.grill 画一个烤架
- R grid.grob 创建网格图形对象,又名“Grob”
- R grid.grep 搜索 Grob 和/或视口
- R grid.glyph 绘制排版字形
- R grid.get 获取网格图形对象
- R grid.curve 在位置之间绘制曲线
- R grid.draw 画一个网格
- R grid.stroke 描边或填充路径
- R grid.raster 渲染光栅对象
- R grid.points 绘制数据符号
- R grid.force 强制将一个对象放入其组件中
- R grid.display.list 控制网格显示列表
- R grid.show.viewport 绘制网格视口图
- R grid.segments 绘制线段
- R grid.frame 创建用于包装对象的框架
- R grid.pack 将对象打包在框架内
- R grid.text 绘制文字
- R grid.xspline 绘制 X 样条线
- R grid.copy 制作网格图形对象的副本
- R grid.record 封装计算和绘图
- R grid.pretty 生成一组合理(“漂亮”)的断点
- R grid.show.layout 绘制网格布局图
- R grid.convert 不同网格坐标系之间的转换
- R grid.DLapply 修改网格显示列表
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Grab the current grid output。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。