Thank you for telling me a fix. But I still don't know if this behavior is what is intended. I used bquote(...) because the plotmath(...) help page refers to bquote and gives an example like this. I suspect most users will be baffled by this kind of behavior, especially since it does not occur when there is one plot. By this I mean that I can draw one plot and title it with the same string using bquote( ). If I change the value of i, and redraw the graph, the redrawn graph has the original value of i in the title, not the updated value. So in this case, an unevaluated expression is not re-evaluated at draw time?
John -----xieyi...@gmail.com wrote: ----- To: John Nolan <jpno...@american.edu> From: Yihui Xie Sent by: xieyi...@gmail.com Date: 10/05/2011 11:49PM Cc: r-help@r-project.org Subject: Re: [R] Titles changing when a plot is redrawn I think the problem is your str1 is an unevaluated expression and will change with the value of i. You should be able to get a fixed title by this: par(mfrow = c(2, 1)) for (i in 1:2) { x <- 1:100 rmse <- sin(x/5) # fake data plot(x, rmse, main = substitute(list(RMSE(theta), i == z), list(z = i))) } Regards, Yihui -- Yihui Xie <xieyi...@gmail.com> Phone: 515-294-2465 Web: http://yihui.name Department of Statistics, Iowa State University 2215 Snedecor Hall, Ames, IA On Wed, Oct 5, 2011 at 10:01 PM, John Nolan <jpno...@american.edu> wrote: > I ran into a problem with titles on graphs. I wanted a graph with > multiple subplots, with each having a title that involved both > a Greek letter and an identifier for each graph. Below is a > simplified version of code to do this. The graph appears fine, > with the first graph having "i=1" in the title, and the second > graph having "i=2" in the title. However, when I resize the graph, > the plot titles change, with both showing "i=2". The titles also > change when I save the plot to a file using the "File" menu, > then "Save as" in Windows. Is this what should happen? I > always thought that titles are static once the graph is > drawn, and couldn't change. > > The problem occurs on some version of R, but not on others. > It does occur with the latest version of R: >> str(R.Version()) > List of 13 > $ platform : chr "i386-pc-mingw32" > $ arch : chr "i386" > $ os : chr "mingw32" > $ system : chr "i386, mingw32" > $ status : chr "" > $ major : chr "2" > $ minor : chr "13.2" > $ year : chr "2011" > $ month : chr "09" > $ day : chr "30" > $ svn rev : chr "57111" > $ language : chr "R" > $ version.string: chr "R version 2.13.2 (2011-09-30)" > > The problem also occurs on: R 2.13.0 on Win32 > and Mac (R 2.12.0, x86_64-apple-darwin9.8.0) > The problem DOES NOT occur under R 2.10.0 on Win32. > > If the code below is bracketed with pdf("test.pdf") > and dev.off(), the correct labels appear in the file. > This behavior doesn't seem to appear if there is only > one plot. > > My guess is that the titles are being reevaluated when > the plot is redrawn, and since the value of i is 2 when > the redraw occurs, both labels get set to "i=2". I guess > "Save as" forces a redraw because a dialog box pops up? > > If could be that this behavior is what is intended, and that > somewhere between R 2.10.0 and R 2.13.2 an old bug was fixed. > Or this behavior is not what was intended, and a bug was > introduced. If the former, this should be explained to the user > somewhere. If the latter, can someone track it down and fix? > > John Nolan > > #------------------------------------------------- > par(mfrow=c(2,1)) > for (i in 1:2) { > x <- 1:100 > rmse <- sin(x/5) # fake data > plot(x,rmse) > str1 <- bquote( paste("RMSE(",theta,"), ",i==.(i) )) > title( str1 ) > } > #------------------------------------------------- > > > ........................................................................... > > John P. Nolan > Math/Stat Department > 227 Gray Hall > American University > 4400 Massachusetts Avenue, NW > Washington, DC 20016-8050 > > jpno...@american.edu > 202.885.3140 voice > 202.885.3155 fax > http://academic2.american.edu/~jpnolan > ........................................................................... > ______________________________________________ > 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. > ______________________________________________ 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.