On Thu, Jul 30, 2009 at 12:43 AM, Armin Goralczyk<agoralc...@gmail.com> wrote: > Hello (R-)Experts > > I hope someone can help with this problem concerning axis annotation > of a lattice shingle plot. I want a plot with three shingles to > display some laboratory value over time. In the first panel over the > first few days, then in the next panel some months, and in the last > panel some years. In the following minimal example the axis annotation > will be in days, but I'd like to have days in the fisrt panel, months > in the second panel and years in the third panel. Is it possible? > > pod <- seq(1, 5000, 5) > test <- data.frame(pod=pod, > val=rep(c(1,2,4,8), length=length(pod)), > g=rep(c('A', 'B'), length=length(pod))) > shingle.pod <- shingle(test$pod, intervals = rbind(c(0, 20), c(20, 180), > c(220, 6000))) > test.plot <- xyplot(val ~ pod | shingle.pod, > data = test, > groups = test$g, > scales = list(x = "free", > y = list(relation = "same", log = 2)), > between = list(x = 0.5), > panel = function(x, y, ...) { > panel.grid(h = -1, v = -1, lwd = 1) > panel.superpose(x, y, ...) > }, > type = c('b') > ) > plot(test.plot) > > (this plot doesn't look good, I know, it's just and example)
If your panels do not overlap, it may be simplest to rescale your data beforehand: rescale <- function (x) { ans <- x mid <- x > 20 & x < 180 ans[mid] <- ans[mid]/30 hi <- x >= 180 ans[hi] <- ans[hi]/365 ans } test.plot <- xyplot(val ~ rescale(pod) | shingle.pod, data = test, groups = test$g, scales = list(x = "free", etc. -Deepayan ______________________________________________ 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.