It seems that the thread is continued in the next month and there it got broken up into multiple threads so search for "problem going" to locate all the messages in:
https://stat.ethz.ch/pipermail/r-devel/2005-June/thread.html#start On 5/20/06, Gabor Grothendieck <[EMAIL PROTECTED]> wrote: > Read through this thread for some sample code: > > https://www.stat.math.ethz.ch/pipermail/r-help/2005-May/072462.html > > On 5/20/06, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: > > Sorry for again asking the same question, but I am still not successfull, > > also after using grid-package, as recommended previously: > > > > I want to write a function() which generates a graphical output and can be > > used in a loop to produce several results with a layout like in > > > > par(mfrow=c(5,5)) > > for ( i in 1:10){ > > plot(1:10) > > } > > > > Here is the (experimental) code: > > > > > > myfunction <- function(){ > > vp1 <- viewport(x=0.1, y=.7, w=.8, h=.2, just="left", name="vp1") > > vp2 <- viewport(x=.1, y=.5, w=.8, h=.2, just="left", name="vp2") > > pushViewport(vp1) > > grid.rect(gp=gpar(col="grey")) > > grid.text("vp1") > > grid.xaxis(main=FALSE) > > upViewport() > > pushViewport(vp2) > > grid.rect(gp=gpar(col="grey")) > > grid.text("vp2") > > grid.xaxis() > > } > > > > > > And the following loop: > > > > > > par(mfrow=c(5,5)) > > for (i in 1:10) { > > grid.newpage() # when ommitting this line, the following plots > > will be plotted as childrens of the afore generated parent > > myfunction() > > } > > > > > > In conclusion, every myfunction() result overwrites the output of the > > previous output and is not plotted side by side as intended. > > > > What to change? > > > > Thanks a lot, Dirk > > > > Dr.med. D. Weismann > > Schwerpunkt Endokrinologie/Diabetologie > > Medizinische Klinik und Poliklinik I > > Universität Würzburg > > Josef-Schneider-Str. 2 > > 97080 Würzburg > > email: [EMAIL PROTECTED] > > Telefon: 0931/201-1 > > > > > > > > -----Ursprüngliche Nachricht----- > > Von: Gabor Grothendieck [mailto:[EMAIL PROTECTED] > > Gesendet: Mi 17.05.2006 03:19 > > An: Weismann, Dirk > > Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] > > Betreff: Re: [R] multiple plots in a function() > > > > Use grid graphics > > http://www.stat.auckland.ac.nz/~paul/grid/grid.html > > and the gridbase package to incorporate classic > > graphics in that. > > > > On 5/16/06, [EMAIL PROTECTED] > > <[EMAIL PROTECTED]> wrote: > > > Thanks a lot, but my problem is not to get a temporary change with > > > par()in myfunction and return to 'oldpar'after finishing. What I want is, > > > that the output of myfunction is handled like one graphic (ie one plot) > > > and therefore I can get the output of myfunction 10times side by side in > > > one window (e.g. mfrow=c(5,5)). But the 'par(mfrow=c(1,2))' inside > > > 'myfunction' makes this impossible. > > > I used plot(..,type="n")two times to initialize the graphics in > > > 'myfunction' and filled both with a lot of low-level graphic code. Since > > > I always need both graphical outputs to interpret the results, I prefer > > > to write one function instead of two for each plot. This might not be the > > > best way to create a graphical output in a function, but how to do it > > > better? > > > > > > Thanks, Dirk > > > > > > -----Ursprüngliche Nachricht----- > > > Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Gabor > > > Grothendieck > > > Gesendet: Dienstag, 16. Mai 2006 05:01 > > > An: Weismann, Dirk > > > Cc: r-help@stat.math.ethz.ch > > > Betreff: Re: [R] multiple plots in a function() > > > > > > You could override par by optionally passing it as an argument: > > > > > > f <- function(x = 1:10, y = 1:10, par = list(mfrow = c(2,2))) { > > > if (!is.null(par)) { > > > on.exit(par(opar)) > > > opar <- par(par) > > > } > > > plot(x) > > > plot(y) > > > } > > > > > > opar <- par(mfrow=c(4,4)) > > > for(i in 1:8) f(par = NULL) > > > par(opar) > > > > > > > > > > > > On 5/15/06, [EMAIL PROTECTED] > > > <[EMAIL PROTECTED]> wrote: > > > > Dear all, > > > > I have the following problem: > > > > I have written a function genereating to plots, eg myfunction <- > > > > (data, some.parameters) { > > > > #some calculations etc > > > > . > > > > par (mfrow=c(1,2)) > > > > plot1(......) > > > > plot2(.....) > > > > } > > > > which works fine. But for analysing several variants, I tried a slope, > > > > eg: > > > > > > > > par (mfrow=c(5,5)) > > > > for ( i in 1:10) { > > > > myfunction(data, i) > > > > } > > > > > > > > Off course, the par() in myfunction overwrites the par() before the > > > > slope. So, how to write myfunction, that it plots two plots and can be > > > > used in the slope like in the example? > > > > > > > > Thanks a lot, Dirk > > > > > > > > Dr.med Dirk Weismann > > > > Schwerpunkt für Endokrinologie und Diabetologie Medizinische > > > > Universitätsklinik I 97080 Würzburg > > > > email: [EMAIL PROTECTED] > > > > Telefon: 0049-931-201-36744 > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > > > > > > ______________________________________________ > > > > R-help@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 > > > > > > > > > > > > > > ______________________________________________ > > > R-help@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 > > > > > > > > ______________________________________________ R-help@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