[R] layout.show()

Paul Murrell p.murrell at auckland.ac.nz
Thu Apr 17 01:05:45 CEST 2003


Hi

layout.show() is only intended to be used to draw a diagram illustrating 
how the device is being split up into different figure regions by 
layout().  An example from help(layout) demonstrates what it does ...

      nf <- layout(matrix(c(1,1,0,2), 2, 2, byrow=TRUE), respect=TRUE)
      layout.show(nf)

The "n" parameter says how many of the figure regions to draw *in the 
diagram*.  So layout.show() is just there to help you to understand what 
layout() is doing.

For drawing a legend outside a plot, perhaps the following example may 
help (it is a modification of one of the examples in help(legend)) ...

     x <- seq(-pi, pi, len = 65)

     # layout with two columns; second one is 3cm wide
     layout(matrix(1:2, ncol=2),
            widths=c(1, lcm(3)))

     # plot;  goes in first column of layout
     plot(x, sin(x), type = "l", ylim = c(-1.2, 1.8), col = 3,
          lty = 2)
     points(x, cos(x), pch = 3, col = 4)
     lines(x, tan(x), type = "b", lty = 1, pch = 4, col = 6)
     title("legend(..., lty = c(2, -1, 1), pch = c(-1,3,4), merge=TRUE)",
           cex.main = 1.1)

     # legend (as separate plot);  goes in second column of layout
     par(mar=c(5.1, 0, 4.1, 0))
     plot.new()
     plot.window(0:1, 0:1)
     legend(0.5, 0.5,
            xjust=0.5, yjust=0.5,
            c("sin", "cos", "tan"),
            col = c(3, 4, 6),
            lty = c(2, -1, 1),
            pch = c(-1, 3, 4),
            merge = TRUE,
            bg = "gray90")
     par(mar=c(5.1, 4.1, 4.1, 2.1))


Hope that helps.

Paul


Wladimir Eremeev wrote:
> Dear r-help,
> 
>   Please, be so kind, tell me what does mean the parameter of layout.show()?
>   I use R 1.6.2... Windows NT 4.0
>   
>   Unfortunately I cannot understand phrases from the help
>   "n: number of figures to plot."
>         what figures?
> 
>   "`layout.show(n)' plots (part of) the current layout, namely the
>     outlines of the next `n' figures."
> 
>     what figures?
>     what does 'next' mean?
> 
>  I'm still trying to draw a legend outside a graph :)
> 
>     layout(matrix(c(1:2))) creates a wonderful layout.
> 
> calls to
> 
>     plot.formula(...
>     lines(...
>     points(...
>     axis(1,at=c(1979:2002));
> 
> draw a beautiful graph.
> 
> but call to
>     layout.show(1) (or any other parameter instead of 1) destroys it.
> 
> what should I say to the R to make it keep already drawn graphs and
> show a legend on the other "panel" of the layout?


-- 
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz



More information about the R-help mailing list