[R] value on logarithmic axis

Jim Lemon jim at bitwrit.com.au
Tue Feb 11 22:25:52 CET 2014


Luigi Marongiu wrote:
>
> dear all,
> I have a xy plot in which x is logarithmic. The plot is fine,
> and I can
> also represent the logarithimic axis usign a tip given me by
> William
> Dunlap. However I would like to plot the actual x value rather
> than the
> log10 s in this case. If I remove the xaxt="n" the plot reports
> the
> scientific notation of the log, a rough version of the nice
> notation
> written by William Dunlap.
> So how can I write the value of the x axis?
>
> ################################################################
> ############
>
> y<-c(25.84, 26.84, 27.85, 28.86, 29.86, 30.87, 31.88, 32.88,
> 33.89,
> 34.90, 35.90, 36.91)
> x<- c(1000, 500,  250,  125,  62.50,  31.25,  15.63,  7.81,
> 3.91,  1.95,
>   0.98,  0.49)
>
> plot(x, y, pch=16, type="b",  log="x", xaxt="n",
> ylab=expression(bold("Y
> axis")), xlab=expression(bold("X axis")))
>
>   xlim<- par("usr")[1:2]
>   lab.x<- seq(ceiling(xlim[1]), floor(xlim[2]))
>   axis(side=1, at=10^lab.x, lab=as.expression(lapply(lab.x,
> function(x)bquote(10^.(x)))))
>
> ################################################################
> ###########
>
Hi Luigi,
Your x-axis has a lot of labels, but you can pack them in like this:

library(plotrix)
staxlab(1,at=c(0.49, 0.98, 1.95, 3.91, 7.81, 15.63, 31.25, 62.50,
  125, 250, 500, 1000))

Jim




More information about the R-help mailing list