I would like to redraw a plot from the .SavedPlots object (list), using
R code (not arrows on the keyboard).
> windows(record=TRUE)
>
> x=runif(100)
> plot(x,col="blue")
> hist(x,col="red")
> plot(x,col="green")
> #When I try to replay any of the recorded plots (here, the second
one), I get the following error message:
> .SavedPlots[2]
Error in replayPlot(x) : loading snapshot from a different session
But I am in the same session! A quick look at function replayPlot shows
that it is because the plots recorded in .SavedPlot do not have any pid
value, whereas they should have one, equal to the current session pid.
Thus, assignation of the current session pid to the pid attribute of the
recorded plots works:
> for (i in 1:.SavedPlots[[2]])
attr(.SavedPlots[[5]][[i]],"pid")=Sys.getpid()
> #correctly gives the second plot:
> .SavedPlots[2]
Is it the right way to replay a plot in an R script, using .SavedPlots?
Is there a simpler or better way?
I would prefer not to use recordPlot, which works, but requires an
additional line of code and a new variable for each created plot:
> plot(x,col="blue")
> plot1=recordPlot()
>
> hist(x,col="red")
> plot2=recordPlot()
>
> plot(x,col="green")
> plot3=recordPlot()
>
> replayPlot(plot2)
I use R version 3.1.2.
Thanks in advance,
Jean-Luc Dupouey
--
INRA
Forest Ecology and Ecophysiology Unit
F-54280 Champenoux
France
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.