[R] how to control significant digits(?) on axis labels
Paul.Rustomji at csiro.au
Paul.Rustomji at csiro.au
Thu Apr 23 14:35:54 CEST 2009
Dear R mailing list
I would like some help on how to get R to display the same number of significant digits (?) for *all* tick marks on axis labels (yet be flexible enough to handle different data sets that vary by 10-1000X).
Consider this simple example:
#---------------------------#
x <- seq(0,2,by=0.5)
xlim <- range(pretty(x,n=5))
ylim <- xlim
plot(c(xlim[1],xlim[2])~c(ylim[1],ylim[2]),type="n",xlim=xlim,ylim=ylim,xaxt="n",yaxt="n",lty=1,pch=40,xaxs="i",yaxs="i",xlab="",ylab="")
par(xaxt="s")
par(xaxs="i")
at <- pretty(xlim)
print(at)
axis(1,at=at,labels=at,las=1,tcl=-0.4,lwd=0.8,cex.axis=1,padj=-1)
mtext("x",1,line=1.8,cex=1,padj=-0)
par(yaxt="s")
par(yaxs="i")
at <- pretty(ylim)
print(at)
axis(2,at=at,labels=at,las=1,tcl=-0.4,lwd=0.8,cex.axis=1,padj=0.3,hadj=0.6)
mtext("y",2,line=2.1,cex=1,padj=-0.5,las=3)
points(c(xlim[1],xlim[2])~c(ylim[1],ylim[2]),type="l",lwd=0.4)
points(x,x,col="red")
#---------------------------#
This results in axis labels of
0, 0.5, 1, 1.5, 2 when I would like
0.0, 0.5, 1.0, 1.5, 2.0.
The wierd thing is the print(at) statements above show what I want (ie a consistent number of decimal places) but somewhere in the axis labelling procedure things seem to change.
I have tried using
> sprintf("%.1f",at)
which works for the range of data above, but this then gives unsatisfactory results if the data is 1+ order of magnitude greater (which it could be in the data I need this to work on) in which case the decimal place is best avoided (eg I would like labels of 0, 5, 10, 15, 20 etc rather than 0.0, 5.0, 15.0, 20.0, 25.0)
Also I think signif() wouldn't be quite what I want and have tried mucking around with formatC but to no avail.
Any ideas?
Paul.
> sessionInfo()
R version 2.8.1 (2008-12-22)
i386-pc-mingw32
locale:
LC_COLLATE=English_Australia.1252;LC_CTYPE=English_Australia.1252;LC_MONETARY=English_Australia.1252;LC_NUMERIC=C;LC_TIME=English_Australia.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] xlsReadWrite_1.3.3 qualV_0.2-4 KernSmooth_2.22-22
loaded via a namespace (and not attached):
[1] tools_2.8.1
Paul Rustomji
Rivers and Estuaries
CSIRO Land and Water
GPO Box 1666
Canberra ACT 2601
ph +61 2 6246 5810
mobile 0406 375 739
More information about the R-help
mailing list