From: Berton Gunter <gunter.berton_at_gene.com>

Date: Sat 19 Mar 2005 - 08:41:22 EST

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 Received on Sat Mar 19 08:47:42 2005

Date: Sat 19 Mar 2005 - 08:41:22 EST

R listers:

I have been foiled by plotmath!

(in R 2.01,Windows 2000)

The task: Plot a normal density and label the ticks as mu - 3 sigma, mu - 2 sigma, ...., mu + 3 sigma, where the mu's and sigmas appear as Greek symbols, of course.

The following code does this:

x<-seq(-3,to=3,by=.01)

y<-dnorm(x)

plot(x,y,type='h',col='lightblue',axes=FALSE)
lines(x,y,col='darkblue')

axis(2)

for(i in seq(-3,to=3))

axis(1,at=i, lab=switch(sign(i)+2, eval(substitute(expression(mu-j*sigma),list(j=-i))), expression(mu), eval(substitute(expression(mu+j*sigma),list(j=i)))))box()

However, I think the code in the for loop is ugly and probably means that I'm doing it wrong. In particular:

- Is there a neat way to use one axis() call and a vector (of expressions?) for the lab=argument?
- The plotmath Help state that expressions can be used for axis labels, so I would have expected the above to work without the eval()call -- but it does not. Would someone kindly explain to me why not -- i.e., what I have misunderstood. That is, to be clear, why does the following not work:

for(i in seq(-3,to=3))

axis(1,at=i, lab=switch(sign(i)+2, substitute(expression(mu-j*sigma),list(j=i)), expression(mu), substitute(expression(mu+j*sigma),list(j=i))))

Any further ideas,insights, or pointers to reference materials would also be appreciated. Many thanks.

- Bert Gunter Genentech Non-Clinical Statistics South San Francisco, CA

"The business of the statistician is to catalyze the scientific learning process." - George E. P. Box

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 Received on Sat Mar 19 08:47:42 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:30:51 EST
*