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


R recordPlot 記錄和重放繪圖


R語言 recordPlot 位於 grDevices 包(package)。

說明

將當前繪圖保存在R變量,並重播它。

用法

recordPlot(load=NULL, attach=NULL)
replayPlot(x, reloadPkgs=FALSE)

參數

load

如果不是 NULL ,則為包名稱的字符向量,將其保存為記錄圖的一部分。

attach

如果不是 NULL ,則為包名稱的字符向量,將其保存為記錄圖的一部分。

x

已保存的情節。

reloadPkgs

指示是否重新加載和/或重新附加作為記錄圖的一部分保存的任何包的邏輯。

細節

這些函數記錄並重放當前圖形設備的顯示列表。返回的對象屬於 "recordedplot" 類,而 replayPlot 充當該類的 print 方法。

返回的對象存儲為對列表,但通常的檢查方法R對象如deparsestr容易產生誤導。

recordPlot 返回類 "recordedplot" 的對象。

replayPlot沒有返回值。

警告

記錄圖的格式可能會改變R版本,所以記錄的情節應該不是用作永久存儲格式R地塊。

作為R3.3.0,可以(再次)重播另一個情節R會話使用,例如,saveRDSreadRDS。甚至可以重播另一個情節R但是,這會產生警告,可能會產生錯誤,或更糟糕的情況。

注意

如果顯示列表包含對 recordGraphics 的調用,而 recordGraphics 又包含從 graphics or grid 以外的非基本包調用代碼的表達式,則重放記錄的繪圖可能不會產生正確的結果(或者可能會失敗)。最著名的例子是使用 ggplot2 包繪製的圖。一種解決方案是在重播記錄的繪圖之前加載相關包。 recordPlotloadattach 參數可用於自動執行此操作。 load 中命名的任何包都將通過 loadNamespace 重新加載;並且隻要在 replayPlot 調用中 reloadPkgsTRUE ,任何在 attach 中命名的包都將通過 library 重新附加。僅當嘗試在一個 R 會話中重播在不同 R 會話中記錄的繪圖時,這才有意義。

參考

Murrell, P., Ooms, J., Allaire, J.J. (2015), "Recording and Replaying the Graphics Engine Display List", https://stattech.wordpress.fos.auckland.ac.nz/2015/12/21/2015-07-recording-and-replaying-the-graphics-engine-display-list/

也可以看看

可以使用 dev.control 打開和關閉顯示列表。最初記錄對於屏幕設備是打開的,對於打印設備是關閉的。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Record and Replay Plots。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。