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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。