[R] reducing the number of x-axis lables in a bwplot while plotting all boxes

Gavin Simpson gavin.simpson at ucl.ac.uk
Fri Feb 29 18:29:16 CET 2008


On Fri, 2008-02-29 at 18:12 +0100, Cornelis de Gier wrote:
> I'm looking for an answer to a similar question:
> 
> years <- as.factor(sort(rep(1987:2006,20)))
> values <- rnorm(1:400,0,10)
> plot(years,values)
> 
> results in 20 boxplots with x axis labels unreadable because there are
> too many of them. How do I reduce the number of x axis labels?

Hmm, if I follow that in an R session, I get very readable x-axis labels
as not all boxplots are labelled - only those that can be accommodated
given the current size of the device.

You could try:

plot(years,values, las = 3)

to rotate the year labels. If your real example has very long labels,
then you will need to create more margin space, see ?par

Alternative, you can cook your own axis:

bxp.res <- boxplot(values ~ years, axes = FALSE)
## axis side 2
axis(2)
## choose every third year
year.want <- seq(from = 1, by = 3, length.out = length(unique(years)))
## draw axis, label at correct locations with correct year label
axis(1, at = year.want, labels = unique(years)[year.want])
## draw the frame
box()

HTH

G

> 
> Regards,
> 
> Cornelis
> 
> 
> 2008/1/7, Jeff D. Hamann <jeff.hamann at forestinformatics.com>:
> > I apologize if this is somewhere in the archives, but I can't seem to find
> >  a solution to this question.
> >
> >  I've been trying to plot a bwplot:
> >
> >  print(
> >       bwplot( n.pareto ~ as.factor(gen) |  mut.rate * n.pop,
> >              data=p6,
> >              horizontal=FALSE,
> >              box.ratio=0.75,
> >              cex=0.6,
> >              xlim=c(-1,51),
> >              ylim=c(-1,500),
> >              layout=c(3,3),
> >              index.cond=list(c(1,2,3),c(3,2,1)),
> >              panel = function(...) {
> >                panel.grid(v = -1, h = -1)
> >                cex=0.05
> >                panel.bwplot(...)
> >                panel.abline(h=486,lty=2)
> >              },
> >              main="Non-dominated Pareto Optimal Solutions",
> >              ylab="Non-dominated Solutions in the Pareto Archive",
> >              xlab="Generation" )
> >       )
> >
> >  which works "fine", but... I have tried almost every combination of
> >  pertinent arguments for reducing the number of ticks/lables while still
> >  plotting all the boxes in each panel.  The levels of "gen" are:
> >
> >  > levels( as.factor(p6$gen ))
> >   [1] "20"   "40"   "60"   "80"   "100"  "120"  "140"  "160"
> >   [9] "180"  "200"  "220"  "240"  "260"  "280"  "300"  "320"
> >  [17] "340"  "360"  "380"  "400"  "420"  "440"  "460"  "480"
> >  [25] "500"  "520"  "540"  "560"  "580"  "600"  "620"  "640"
> >  [33] "660"  "680"  "700"  "720"  "740"  "760"  "780"  "800"
> >  [41] "820"  "840"  "860"  "880"  "900"  "920"  "940"  "960"
> >  [49] "980"  "1000"
> >  >
> >
> >  which creates a "smear" of labels across the x axis. My problem is that I
> >  would like to only print five or 10 of the labels (i.e.
> >  20,100,200,...,900) or something to make the labels readable and still
> >  plot all the boxes in each panel.
> >
> >  Is there something I'm missing as a result  conditioning on two factors. I
> >  feel like such a newbie about this... ugh... Any hints, please?
> >
> >  Thanks,
> >  Jeff.
> >
> >  --
> >  Forest Informatics, Inc.
> >  PO Box 1421
> >  Corvallis, Oregon 97339-1421
> >
> >  ______________________________________________
> >  R-help at 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.
> >
> 
> ______________________________________________
> R-help at 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.
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list