Hello Rainer, You need to catch the cases where the call to plot generates an error. Using your example:
## Set layout to three rows and only one column par( mfcol=c(3,1), oma=c(0,0,0,0), mar=c(4, 4, 2, 2) ) ## First row par(mfg=c(1,1)) er<-try( plot(runif(ff)), silent=T ) ## plot fails due to something. if (inherits(er, "try-error")) frame() else plot(runif(100)) ## Second row par(mfg=c(2,1)) try( plot(runif(100)) ) ##actually is plotted in first row ## Third row par(mfg=c(3,1)) plot(runif(1000)) ## plotted in third row See ?try ?inherits and ?frame Notice that you will have to change plot(runif(ff)) to whatever plot you are calling. I hope this helps, Francisco Rainer M. Krug wrote: > Greg Snow wrote: >> Oops, I read further down in your original post and see that you already >> knew about par(mfg=c(2,1)). To get it to advance to page 2 for the 4th >> plot try calling plot.new() which should move you to the next page, then >> doing par(mfg=c(1,1)) should cause the next graph to be at the top. >> >> Hope this helps, >> > > Thanks - I found plot.new() and it is working. > > But: If the first plot command fails, par(mfg=c(2,1)) does NOT move to > the second one - if you try the code below, you will see. > > Is this a bug or am I doing something wrong? > > ## Set layout to three rows and only oine column > par( mfcol=c(3,1), oma=c(0,0,0,0), mar=c(4, 4, 2, 2) ) > > ## First row > par(mfg=c(1,1)) > try( plot(runif(ff)) ) ## plot fails due to something. > > ## Second row > par(mfg=c(2,1)) > try( plot(runif(100)) ) ##actually is plotted in first row > > ## Third row > par(mfg=c(3,1)) > plot(runif(1000)) ## plotted in third row > > ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.