On Tue, 2008-02-19 at 09:17 -0800, Stiffler wrote: > Hello, > > I was wondering why the plot() command ignores the datatype when displaying > axis labels. More specifically, if the data points are integers then the > axis labels should intuitively also be integers, right? > > > x <- as.integer(c(1,2,3)) > > y <-x > > typeof(x) > [1] "integer" > > plot(x,y) > > > > The axis labels are 1.0, 1.5, 2.0, 2.5, 3.0 but if the integer type were > taken into account they would be 1, 2, 3.
It is due to pretty() finding nice numbers for the axis > pretty(x) [1] 1.0 1.5 2.0 2.5 3.0 > > PS what's the right way to get integer labels? Do them by hand, if they are (numeric) integers > plot(x,y, axes = FALSE) > axis(2) > axis(1, at = x) > box() You could try writing your own Axis.integer function if doing the extra steps is a pain - something like: Axis.integer <- function(x = NULL, at = NULL, ..., side, labels = NULL) { at <- unique(x) labels <- as.character(at) axis(side = side, at = unique(x), labels = labels, ...) } which works in these case, y2 <- runif(3) plot(x, y) plot(x, y2) But is far from bullet proof and is not guaranteed to work in all situations. HTH G -- %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% 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 %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% ______________________________________________ R-help@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.