[R] comma as decimal separator in plots

Peter Dalgaard BSA p.dalgaard at biostat.ku.dk
Sat Jan 19 12:19:20 CET 2002


"Antonio Olinto" <aolinto at bignet.com.br> writes:

> Hi,
> 
> Some time ago I asked about how to use comma as decimal separator in plots
> and Mr. Paul Murrell wrote:
> -------
> You could try something with axis() and chartr(), like ...
>     par(mfrow=c(2,1))
>     plot(1:10/11, rep(1, 10), main="Standard X-Axis")
>     plot(1:10/11, rep(1, 10), main="Customised X-Axis", axes=F)
>     axis(1, at=pretty(1:10/11),
>         labels=chartr(".", ",", as.character(pretty(1:10/11))))
>     axis(2)
>     box()
> -------
> 
> This was very useful to me, but in the example:
> 
> x <- rnorm(50, mean=2, sd=0.1)
> y <- rnorm(50, mean=2, sd=0.2)
> plot(x,y)
> axis(1,at=pretty(x),labels=chartr(".", ",", as.character(pretty(x))))
> axis(2,at=pretty(y),labels=chartr(".", ",", as.character(pretty(y))))
> 
> I got an "2" in the middle of  the "2.0". How could I avoid it?

You forgot to put axes=F inside plot() as Paul did, so you are
overplotting the original axis labels, and you can see that in the
other labels too since "," is slightly wider than ".". The "2" comes
out because 

> pretty(y)
[1] 1.6 1.8 2.0 2.2 2.4 2.6
> as.character(pretty(y))
[1] "1.6" "1.8" "2"   "2.2" "2.4" "2.6"
                ***

You'll probably prefer

> format(pretty(y))
[1] "1.6" "1.8" "2.0" "2.2" "2.4" "2.6"

Another fine point is that (in my case---there's an rnorm() involved)
the 2.6 value is outside the y-limits, so it looks strange if you omit
the box(). pretty() will do that since it is required to cover the
range of its argument, but the ylim on the plot is not required to
cover pretty(y). This is easly fixed up in concrete cases, but I
don't see a simple general solution except the slightly awkward
py<-pretty(y)
py<-py[py>=par("usr")[3]]
py<-py[py<=par("usr")[4]].
 
-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list