[R] add lines() to 1st plot in layout() after calling 2nd plot()?

Greg Snow Greg.Snow at imail.org
Mon Oct 12 19:57:00 CEST 2009


Since you are using LaTeX, you might consider creating the plots all in 1 step, but use the tikzdevice,  this provides LaTeX (pgf) commands to create the plot that you can then insert LaTeX commands to built up the plot bit by bit.

You could also look at using the subplot function in the TeachingDemos package, start with a blank plot without margins, then use subplot in place of layout to position your graphs, the examples in the help file for subplot show how to add to the subplot after creating it.

Another option is to create a function that creates each whole plot, but with an argument and some if statements that will skip certain steps, then just do a for loop calling the functions to build the plots in pieces.  This means replotting from scratch each step, but save these as graphics files and it is not overly complex.

Hope this helps,

-- 
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 Marianne Promberger
> Sent: Saturday, October 03, 2009 1:15 PM
> To: r-help
> Subject: [R] add lines() to 1st plot in layout() after calling 2nd
> plot()?
> 
> Dear R users,
> 
> I create a graphic with two plots side by side using layout(), like
> this:
> 
> layout(matrix(c(1,2),1))
> plot(1:10,main="left plot")
> lines(c(3:7,7:3),col="red")
> plot(10:1,main="right plot")
> 
> The lines() obivously get added to the "left plot" plot.
> 
> Now, I'm trying to write a function that builds up a plot bit by bit to
> then include it in a LaTeX presentation with overlays. I'm using
> dev.copy(), and it would make my life much easier (because in fact I
> call all sorts of additional axis() etc after plot) if I could call
> the above commands in this order:
> 
> layout(matrix(c(1,2),1))
> plot(1:10,main="left plot")
> plot(10:1,main="right plot")
> lines(c(3:7,7:3),col="red")
> 
> but of course now lines() gets added to the "right plot". I
> 
> Is there any way to make the lines() go to the fist plot ("left plot")?
> 
> Marianne
> 
> --
> Marianne Promberger PhD, King's College London
> http://promberger.info
> R version 2.9.2 (2009-08-24)
> Ubuntu 9.04
> 
> ______________________________________________
> R-help at r-project.org mailing list
> 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.




More information about the R-help mailing list