On Feb 8, 2008 9:36 AM, Alex Brown <[EMAIL PROTECTED]> wrote: > Hi, > > How might I use xyplot to plot segments where the segments are in the > input data? (ie a directed acyclic forest). > > Here's an example in base graphics: > > n = data.frame(id = c(1,2,3,4), parent = c(0,1,2,2), value = > c(5,5.5,7,3), date = c(1,2,3,3.5)) > > plot(n$date, n$value) > > do.call( > segments, > with( > merge(n,n,by.x="parent", by.y="id"), > data.frame(x0=date.x, y0=value.x, x1=date.y, y1=value.y) > ) > ) > > xyplot only seems to take an x and a y, and panels only seem to get x > and y. > > I can see an lsegments, but I can't see how to use it in this example.
It's straightforward with ggplot2: install.packages("ggplot2") library(ggplot2) df <- data.frame(id = c(1,2,3,4), parent = c(0,1,2,2), value = c(5,5.5,7,3), date = c(1,2,3,3.5)) selfmerge <- merge(df, df, by.x="parent", by.y="id") qplot(date, value, data=df) + geom_segment(data=selfmerge, aes(x=date.x, xend=date.y, y=value.x, yend=value.y)) You can read more at http://had.co.nz/ggplot2/ Hadley -- http://had.co.nz/ ______________________________________________ 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.