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

Reply via email to