[R] plotmath question

apjaworski@mmm.com apjaworski at mmm.com
Fri Mar 18 22:58:03 CET 2005






Bert,

This works fine and and seems a little simpler:

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)

ll <- expression(mu-3*sigma, mu-2*sigma, mu-sigma, mu, mu+sigma,
mu+2*sigma, mu+3*sigma)
axis(1, at=-3:3, lab=ll)

box()

Cheers,

Andy


__________________________________
Andy Jaworski
518-1-01
Process Laboratory
3M Corporate Research Laboratory
-----
E-mail: apjaworski at mmm.com
Tel:  (651) 733-6092
Fax:  (651) 736-3122


                                                                           
             Berton Gunter                                                 
             <gunter.berton at ge                                             
             ne.com>                                                    To 
             Sent by:                  "'R-help'"                          
             r-help-bounces at st         <r-help at stat.math.ethz.ch>          
             at.math.ethz.ch                                            cc 
                                                                           
                                                                   Subject 
             03/18/2005 03:41          [R] plotmath question               
             PM                                                            
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




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:

1) Is there a neat way to use one axis() call and a vector (of
expressions?)
for the lab=argument?

2) 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 at 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




More information about the R-help mailing list