On Oct 24, 2013, at 7:00 AM, Hurr wrote:

> Thanks Jim, maybe now I can start learning.
> Here is a run of my trying to learn:
>> xvalue<-c(5.2,1.3,9.7,2.8,8.1,4.7,6.6,7.4)
>> yvalue<-c(9,3,4,7,2,5,3,6)
>> plot(xvalue,yvalue)
>> axis(1,at=NULL,labels=1/xvalue,digits=5)
> Error in axis(1, at = NULL, labels = 1/xvalue, digits = 5) :
>  'labels' is supplied and not 'at'
> In addition: Warning message:
> In axis(1, at = NULL, labels = 1/xvalue, digits = 5) :
>  "digits" is not a graphical parameter
>> 
> Why can't R automatically compute the spacing when I use the formula?

I don't see any formula. If you are talking about the expression `1/xvalue`, it 
is going to be a decimal fraction and it will be coerced to a character value 
before being assigned to 'labels'. As explained in the help page for `axis`, 
when "at" is left as NULL, the positions will be computed from par("xaxt"). But 
you gave only a numeric argument to labels and did not tell axis where you 
wanted these values were to be placed. If those values were interpreted as 
being positions they would have been off the left side of the "paper".

 If you don't like the way 'axis' works, you are welcome to write a new axis 
function that processes numeric arguments to labels differently. But in this 
case you appear to think that R kept a record someplace of the argument to x in 
the preceding plot. _That_ is wishful thinking on your part. If you want a 
plotting paradigm that may record x and y values, then look at lattice or 
ggplot2. Base graphics is mostly ( memoryless ) ink-on-paper, although there 
may be some information accessible via `par`.

> How can I specify n-digits or width instead of round or nothing? 

?sprintf
?formatC
> 
-- 

David Winsemius
Alameda, CA, USA

______________________________________________
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