recordPlot {grDevices} | R Documentation |
Functions to save the current plot in an R variable, and to replay it.
recordPlot(load=NULL, attach=NULL) replayPlot(x, reloadPkgs=FALSE)
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. |
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.
recordPlot
returns an object of class "recordedplot"
.
replayPlot
has no return value.
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.
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.
The displaylist can be turned on and off using dev.control
.
Initially recording is on for screen devices, and off for print devices.