Date: Thu, 26 Mar 1998 22:49:28 +1200 (NZST) From: Ross Ihaka <ihaka@stat.auckland.ac.nz> Message-Id: <199803261049.WAA03984@stat1.stat.auckland.ac.nz> To: r-help@stat.math.ethz.ch, wsimpson@uwinnipeg.ca Subject: Re: R-beta: mfg weirdness > From: Bill Simpson <wsimpson@uwinnipeg.ca> > To: r-help <r-help@stat.math.ethz.ch> > Subject: R-beta: mfg weirdness > > It seems there are problems with mfg, both the old version .61.2 and the > snapshot .62. > > > x<-rnorm(100) > > y<-rnorm(100) > > y1<-x/y > > x11() > > par(mfcol=c(2,1)) > > par(mai=c(.6,.6,.2,.2)) > > plot(x,y,mfg=c(2,1,2,1)) > I'm not sure if 2,1 is considered the top or the bottom position on the > page, but whether you say mfg=c(2,1,2,1) or mfg=c(1,1,2,1), the first plot > is always drawn at the top position. > > plot(x,y,mfg=c(2,1,2,1)) > Now the second plot is drawn at the bottom position. Again, the mfg > argument has no effect. The second plot is always at the bottom > > plot(x,y1,mfg=c(2,1,2,1)) > Now the whole figure is cleared and a single plot appears at the top. > > Further plots alternate in position in this way, independent of mfg. I just checked my S manual and it appears that layout parameters like can "mfg" only be given in par(). I think that in fact "mfg" is only meant to be queried. Perhaps not unrelatedly ... After some discussion with Paul Murrell I am inclined to think that the whole graphics system needs a rewrite, even though this would mean incompatibility with S. A major problem is that the whole "par" system does not work when devices can be resized. Consider the following series of steps: x11() opar <- par() # save parameters # manually resize window par(opar) # restore saved parameters Before the resize, "fig" and "fin" are compatible, but after the resize they are not. So which should be used to determine the plot layout? [ Splus seems to get around this by not changing the nominal plot size when the graphics window is resized. (Check the value of "din", "fin", etc. before and after a resize)] In Paul's work on maintaining display lists, he keeps track of the units which a user used to set up a plot (was it "fin" or "fig"?) and recomputes plot layouts using this unit information. In interpreted code the saving and restoring of the graphics state is done with opar <- par() ... par(opar) This can't work when window resizing is allowed. Does anyone have any thoughts about how important it is to retain compatibility with the S way of doing things? Ross -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._