當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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