On Wed, Apr 28, 2010 at 5:21 PM, Dennis Fisher <fis...@plessthan.com> wrote: > Colleagues > > I have a lengthy script that calls mtext. Under most circumstances, a > graphics device is open and a plot exists, in which case mtext works as > expected. However, there are some instances where the graphics device is > open but no plot exists. When mtext is called, I receive an error message: > Error in mtext(1) : plot.new has not been called yet > > The solution is to confirm that: > a. the device is open: length(dev.list()) > 0 > b. whether plot.new has been called. > > I need help on the latter - how does one test whether plot.new has been > called?
You could see if par(new=TRUE) generates a warning: > par(new=TRUE) Warning message: In par(new = TRUE) : calling par(new=TRUE) with no plot > plot.new() > par(new=TRUE) > - because the help(par) says: It is an error (ignored with a warning) to try to use ‘new=TRUE’ on a device that does not currently contain a high-level plot To see if a warning happens, set option(warn=2) to turn warnings to errors, and then wrap the par() call in a try() clause. Or some other way. Or you could just wrap your mtext() call in a try clause.... Barry -- blog: http://geospaced.blogspot.com/ web: http://www.maths.lancs.ac.uk/~rowlings web: http://www.rowlingson.com/ twitter: http://twitter.com/geospacedman pics: http://www.flickr.com/photos/spacedman ______________________________________________ R-help@r-project.org 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.