That worked perfectly. Thanks! - Elliot
On Mon, May 09, 2011 at 12:20:36AM +0530, Deepayan Sarkar wrote: > On Fri, May 6, 2011 at 9:24 PM, Elliot Joel Bernstein > <elliot.bernst...@fdopartners.com> wrote: > > I'm trying to create an xyplot with a "groups" argument where the y-variable > > is the cumsum of the values stored in the input data frame. I almost have > > it, but I can't get it to automatically adjust the y-axis scale. How do I > > get the y-axis to automatically scale as it would have if the cumsum values > > had been stored in the data frame? > > > > Here is the code I have so far: > > > > require(lattice) > > > > > > > > dates <- seq(as.Date("2011-01-01"), as.Date("2011-04-30"), "days") > > g <- 1:3 > > > > > > dat <- data.frame(date = rep(dates, length(g)), > > group = rep(g, each = length(dates)), > > value = rnorm(length(dates)*length(g)) + 0.05) > > > > > > xyplot(value ~ date, data = dat, group = group, type = 'l', grid = TRUE, > > panel = panel.superpose, > > panel.groups = function(x, y, ...) { panel.xyplot(x, cumsum(y), ...) > > }) > > > > > > I want the result to look the same as if I had done > > > > dat$cumvalue <- with(dat, unsplit(lapply(split(value, group), cumsum), > > group)) > > xyplot(cumvalue ~ date, data = dat, group = group, type = 'l', grid = TRUE) > > You need something along the lines of > > xyplot(value ~ date, data = dat, group = group, type = 'l', grid = TRUE, > panel = panel.superpose, > panel.groups = function(x, y, ...) { > panel.xyplot(x, cumsum(y), ...) > }, > prepanel = function(x, y, groups, ...) { > yy <- unlist(tapply(y, groups, cumsum)) > list(ylim = range(yy, finite = TRUE)) > }) > > -Deepayan -- Elliot Joel Bernstein, Ph.D. | Research Associate | FDO Partners, LLC 134 Mount Auburn Street | Cambridge, MA | 02138 Phone: (617) 503-4619 | Email: elliot.bernst...@fdopartners.com ______________________________________________ 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.