[R] Returning to normal after call to layout()

Petr Pikal petr.pikal at precheza.cz
Fri Dec 10 13:29:32 CET 2004



On 10 Dec 2004 at 12:20, michael watson (IAH-C) wrote:

> Hi Petr
> 
> Yes thanks I did get your response and it was helpful.  However, I
> have now resorted to using barplot() to draw a legend (as all I wanted
> was colored boxes and text) and it works very well for my needs.
> 
> Basically, with layout() I'm not getting what I would expect, which
> may be a problem with my expectation rather than anything else.  Like
> I say, I have a function which draws a plot, using layout to divide
> the plotting region into top and bottom.  Fine.  If the user calls my
> function, and then another plotting function, I would expect the new
> plotting function to overwrite the whole of the old plot - but it
> doesn't, it draws the new plot in the top half of the old plot, and
> clears the bottom plot.  So what I want is something which says, after
> calling layout(), "OK, I'm done plotting in two different regions, I
> want you to treat the current device as a single region again".
> 
> In a previous package I wrote, when using split.screen() to divide up
> the plotting region, dev.off() could be used for this purpose.  But
> dev.off() closes the window/plot that I created using layout().

Hi

from the layout help page example (shortened)

> def.par <- par(no.readonly = TRUE)
> layout(matrix(c(1,2), 2, 1))
> plot(1,3)
> plot(1,2)
> par(def.par)
> plot(1,1)
>
suppose to be exactly what you want

Cheers
Petr


> 
> Mick
> 
> -----Original Message-----
> From: Petr Pikal [mailto:petr.pikal at precheza.cz] 
> Sent: 10 December 2004 12:12
> To: michael watson (IAH-C)
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] Returning to normal after call to layout()
> 
> 
> 
> 
> On 10 Dec 2004 at 11:47, michael watson (IAH-C) wrote:
> 
> > Hi
> > 
> > I have a function which draws a plot, using the layout() function to
> > divide the screen into two parts.  The function works fine, but then
> > my next call to plot() draws the plot in the first section of the
> > plot
> 
> > I've just drawn using layout() - whereas what I want it to do is
> > create a new plot.
> > 
> > I tried using dev.off() but that just closes the layout plot window,
> > which is not what I want.  So my question is - after using the
> > layout() function, "layout(matrix(c(1,2), 2, 1))", how do I tell R
> 
> Hi
> 
> what is wrong on this:
> 
> layout(matrix(c(1,2), 2, 1))
> plot(1,1)
> plot(1,2)
> windows() #opens the new graphic device see ?device, ?windows
> plot(1,3)
> 
> BTW did you read my previous post to your question about legend 
> on a new window?
> 
> Cheers
> Petr
> 
> 
> > that the next call to a plotting function should use a new window,
> > and
> 
> > not the layout window?  I've looked in ?layout but there doesn't
> > seem to be anything in there.
> > 
> > Thanks
> > Mick
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list 
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> > http://www.R-project.org/posting-guide.html
> 
> Petr Pikal
> petr.pikal at precheza.cz
> 
> 

Petr Pikal
petr.pikal at precheza.cz




More information about the R-help mailing list