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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。