[R] Use of recordPlot

Greg Snow Greg.Snow at imail.org
Tue Apr 22 17:42:32 CEST 2008

You seem to be confusing several issues.

First, being object oriented does not mean that it matches C++ syntax or
that every object is guarenteed to have specific methods.  What lead you
to think that a recordedplot would have a metafile method?  Nothing else
has that method, and the only function I find with metafile is the
win.metafile graphics device.

The difference between SavedPlots and recordedPlot is the same as the
difference between "flock" and "sheep" when talking about a flock of
sheep.  A recordedPlot object is a single plot, a SavedPlots object is a
group of recordedPlot objects (not the plural vs. singular).

Look at the help for "objects" or "ls" (?ls) and look at the 'all.names'
argument to see how to find .SavedPlots

R does not use object.method for method dispatch, trying that is
confusing the parser and that is why you get an error.  Try
method(object) instead.

Also recognize that R follows the philosophy of "Source is Real". For
what you are trying to do, it will probably work better to write a
script or function that creates your plots, then rerun the code when you
want the plots again.  The current mechanism is useful for a quick
paging through plots, but was not meant for much more.  

Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
(801) 408-8111

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Beck, Kenneth (STP)
> Sent: Monday, April 21, 2008 4:10 PM
> To: r-help at r-project.org
> Subject: [R] Use of recordPlot
> I am trying to save plots that I create using calls to 
> windows() folowed by multiple calls to plot to place several 
> plots on a page. I want to store the plots as variables to be 
> able to recall them later. 
> The documentation states:
> "Recorded plot histories are of class "SavedPlots". They have 
> a print method, and a subset method. 
> As the individual plots are of class "recordedplot" they can 
> be replayed by printing them: see recordPlot. 
> The active plot history is stored in variable .SavedPlots in 
> the workspace."
> But what does this mean "class SavedPlots"? Is class similar 
> to a class in C++? 
> Where are the plot() and metafile(), etc methods for this class? 
> And if it is saved as a SavedPlots class, then what is a 
> "recordedplot"
> class? 
> Why the two names? Finally, the .SavedPlots does not appear 
> in my workspace at all. 
> Where did it go?
> Here is a code snippet, why does this not work:
> windows();
> nf1 <- layout(matrix(1), widths=lcm(6), heights=lcm(6)) 
> par(mfrow=c(2,2)); par (mfg=c(1,1)); plot( ...some stuff...); 
> par (mfg=c(1,2); plot(....some more stuff...) par 
> (mfg=c(2,1); plot(....some more stuff...) par (mfg=c(2,2); 
> plot(....some more stuff...)
> plot_save=recordPlot();
> # now some more code, doing other stuff, maybe more plots # 
> now try to replay the saved plot:
> replayPlot(plot_save)
> This last line gives the following error:
> Error in replayPlot(plot_save) : 
>   A clipboard metafile can store only one figure.
> The documentation says that replayPlot() has a print method, 
> so let's try that: we get the following error:
> Error: unexpected symbol in "replayPlot(lm_hr_plot).print"
> Can someone help me understand this, and get routines to save 
> and replay plots? 
> Thanks in advance...

More information about the R-help mailing list