Searched archives and found some old email threads on the topic. But mot exactly what I think I need. Suppose I have a datafile such as tmp. tmp <- data.frame(var1 = c(rnorm(1000), rnorm(1000, 1, 1)), var2 = gl(2, 1000)) I'd like a plot similar to the one below, but with an abline of v=0 in the lower panel and v=1 in the upper panel. Code below creates two lines in each panel, not quite sure how to separate them by panel. densityplot(~ var1|var2, tmp, type = c('g', 'l'), layout = c(1,2), panel = function(x, ...){ panel.densityplot(x, ...) panel.abline(v = c(0,1)) } ) Thank you Harold [[alternative HTML version deleted]]
?panel.number This tells you what panel you're in and you can use that to determine which line to draw. -- Bert On Tue, Jan 17, 2012 at 9:59 AM, Doran, Harold <HDoran at air.org> wrote:> Searched archives and found some old email threads on the topic. But mot exactly what I think I need. Suppose I have a datafile such as tmp. > > tmp <- data.frame(var1 = c(rnorm(1000), rnorm(1000, 1, 1)), var2 = gl(2, 1000)) > > I'd like a plot similar to the one below, but with an abline of v=0 in the lower panel and v=1 in the upper panel. Code below creates two lines in each panel, not quite sure how to separate them by panel. > > densityplot(~ var1|var2, tmp, > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?type = c('g', 'l'), > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?layout = c(1,2), > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? panel = function(x, ...){ > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? panel.densityplot(x, ...) > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? panel.abline(v = c(0,1)) > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } > ) > > Thank you > Harold > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > 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.-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Hi addLine<- function(a=NULL, b=NULL, v = NULL, h = NULL, ..., once=F) { tcL <- trellis.currentLayout() k<-0 for(i in 1:nrow(tcL)) for(j in 1:ncol(tcL)) if (tcL[i,j] > 0) { k<-k+1 trellis.focus("panel", j, i, highlight = FALSE) if (once) panel.abline(a=a[k], b=b[k], v=v[k], h=h[k], ...) else panel.abline(a=a, b=b, v=v, h=h, ...) trellis.unfocus() } } after making a lattice plot just use addLine(v=vector of values where you want to plot a line in each panel, once =TRUE) Regards Petr> > Searched archives and found some old email threads on the topic. But mot> exactly what I think I need. Suppose I have a datafile such as tmp. > > tmp <- data.frame(var1 = c(rnorm(1000), rnorm(1000, 1, 1)), var2 = gl(2,1000))> > I'd like a plot similar to the one below, but with an abline of v=0 inthe> lower panel and v=1 in the upper panel. Code below creates two lines in > each panel, not quite sure how to separate them by panel. > > densityplot(~ var1|var2, tmp, > type = c('g', 'l'), > layout = c(1,2), > panel = function(x, ...){ > panel.densityplot(x, ...) > panel.abline(v = c(0,1)) > } > ) > > Thank you > Harold > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.