recordplot
Record and Replay Plots
Description
Functions to save the current plot in an R variable, and to replay it.
Usage
recordPlot(load=NULL, attach=NULL) replayPlot(x, reloadPkgs=FALSE)
Arguments
load | If not |
attach | If not |
x | A saved plot. |
reloadPkgs | A logical indicating whether to reload and/or reattach any packages that were saved as part of the recorded plot. |
Details
These functions record and replay the displaylist of the current graphics device. The returned object is of class "recordedplot"
, and replayPlot
acts as a print
method for that class.
The returned object is stored as a pairlist, but the usual methods for examining R objects such as deparse
and str
are liable to mislead.
Value
recordPlot
returns an object of class "recordedplot"
.
replayPlot
has no return value.
Warning
The format of recorded plots may change between R versions, so recorded plots should not be used as a permanent storage format for R plots.
As of R 3.3.0, it is possible (again) to replay a plot from another R session using, for example, saveRDS
and readRDS
. It is even possible to replay a plot from another R version, however, this will produce warnings, may produce errors, or something worse.
Note
Replay of a recorded plot may not produce the correct result (or may just fail) if the display list contains a call to recordGraphics
which in turn contains an expression that calls code from a non-base package other than graphics or grid. The most well-known example of this is a plot drawn with the package ggplot2. One solution is to load the relevant package(s) before replaying the recorded plot. The load
and attach
arguments to recordPlot
can be used to automate this - any packages named in load
will be reloaded, via loadNamespace
, and any packages named in attach
will be reattached, via library
, as long as reloadPkgs
is TRUE
in the call to replayPlot
. This is only relevant when attempting to replay in one R session a plot that was recorded in a different R session.
See Also
The displaylist can be turned on and off using dev.control
. Initially recording is on for screen devices, and off for print devices.
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.