[R] log scale y axis ticks control on boxplots

Marc Schwartz MSchwartz at mn.rr.com
Tue Feb 28 06:21:13 CET 2006


On Mon, 2006-02-27 at 23:08 +0100, Thomas Hoffmann wrote:
> Hey R Users
> 
> I like to control the ticks and labels in a boxplot as described for a 
> xyplot below (thread in maillinglist in may 2003). Does anybody knows 
> how it works?
> 
> Thanks in advance
> Thomas
> 
> Thread from May 2003
> (http://tolstoy.newcastle.edu.au/R/help/03a/5604.html)
> 
> Hello R Users!
> 
> I'm using lattice to produce some graphs with logaritmic y-scales. I use
> the command
> 
> xyplot(hits ~ c(1:1024), data=eichData, type="S", scales=list(y =
> list(log=10)))
> 
> to create the plot. This is fine, except for the automatically choosen
> tick marks. I'd like to have a major tick at the 10^n location and minor
> ticks in between which correspond with the native variable. To get this
> working I have to use at and label like
> 
> labl <- rep("", 30)
> labl[1] <- "1"; labl[10] <- "10"; labl[19] <- "100"; labl[28] <- "1000";
> nums <- c(1:10, seq(20,100, 10), seq(200, 1000, 100))
> xyplot(hits ~ c(1:1024), data=eichData, type="S", scales=list(y =
> list(log=10, at=nums, labels=labl)))


It's not entirely clear whether you want this using bwplot() or
boxplot(). So...here are examples using both:

  library(lattice)
  x <- 1:1000
  labl <- rep("", 28)
  labl[1] <- "1"
  labl[10] <- "10"
  labl[19] <- "100"
  labl[28] <- "1000"
  nums <- c(1:10, seq(20, 100, 10), seq(200, 1000, 100))
  bwplot(x, log = "x", 
         scales = list(x = list(log = 10, at = nums, labels = labl)))



  x <- 1:1000
  boxplot(x, log = "y", yaxt = "n")
  labl <- rep("", 28)
  labl[1] <- "1"
  labl[10] <- "10"
  labl[19] <- "100"
  labl[28] <- "1000"
  nums <- c(1:10, seq(20, 100, 10), seq(200, 1000, 100))
  axis(2, at = nums, label = labl, las = 2)


Is either one of those what you are looking for?

HTH,

Marc Schwartz




More information about the R-help mailing list