On Oct 6, 2011, at 2:29 PM, David Winsemius wrote:


On Oct 6, 2011, at 8:25 AM, John Nolan wrote:

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( ).

It seems to be an infelicity that is not reproducible on Macs:

<RMSE.titles.pdf>

Apologies, I take it back. I read you original post incorrectly and thought you were having problems with the original plot appearing incorrectly. When I do the the resizing I do see the same unexpected change to both titles having " i = 2 "


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?

I certainly would not have expected redrawing to call any R code again. I would have expected the graphics device to do the recalculations.

As I said. I would not have expected this, either. I seem to remember this being brought up before, but I was unable to find it on a search.

--
David.


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 )
}
#-------------------------------------------------



David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to