Record and Replay Plots
Functions to save the current plot in an R variable, and to replay it.
A saved plot.
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
replayPlot acts as a
The returned object is stored as a pairlist, but the usual methods for
examining R objects such as
str are liable to mislead.
recordPlot returns an object of class
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,
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.
attach arguments to
can be used to automate this - any packages named in
will be reloaded, via
loadNamespace, and any packages
attach will be reattached, via
as long as
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
Initially recording is on for screen devices, and off for print devices.