[R] Setting the 'fig' graphic parameter

Marc Schwartz MSchwartz at MedAnalytics.com
Mon Mar 22 17:40:51 CET 2004


On Mon, 2004-03-22 at 10:22, Mario dos Reis wrote:
> Hi guys,
> 
> # I would like to plot a figure with the following layout:
> #
> #  ----------------------------
> #  |                 |        |
> #  |                 |        |
> #  |                 |        |
> #  |                 |--------|
> #  |                 |        |
> #  |                 |        |
> #  |                 |        |
> #  ----------------------------
> 
> x <- rnorm(100)
> y <- rnorm(100)
> 
> par(fig=c(0,0.7,0,1))
> plot(x,y)
> 
> # (please maximise your plotting device so you get a 'rectangular' area)
> 
> # now lets do the upper corner 'little' plot
> 
> par(fig=c(0.7, 1, 0.5, 1))
> plot(x,y)
> 
> # and ...
> 
> par(fig=c(0.7, 1, 0, 0.5))
> plot(x,y)
> 
> Now, my problem is as you might have seen already, that the old figure
> gets deleted when the new one is placed. I was trying to reproduce an
> exercise a saw in an S-plus book. I would really like to know what is
> going on, the documentation about graphic parameters is not very helpful
> about fig, and I would really like to set a graph with the above layout.
> 
> Thanks,
> Mario dos Reis.


Try reading through chapter 12 in An Introduction to R, which covers
plotting basics. There are differences between R and S-PLUS.

You need to use par(new = TRUE) prior to the second and third plots,
otherwise each call to plot() clears the plot device.

Use the following:

x <- rnorm(100)
y <- rnorm(100)

par(fig=c(0,0.7,0,1))
plot(x,y)

par(new = TRUE)
par(fig=c(0.7, 1, 0.5, 1))
plot(x,y)

par(new = TRUE)
par(fig=c(0.7, 1, 0, 0.5))
plot(x,y)

That should get you what you want.

Also, take a look at the layout() function (?layout), which enables you
to define sections within the overall plotting area as do par("mfcol")
and par("mfrow").

HTH,

Marc Schwartz




More information about the R-help mailing list