[R] Lattice graph with segments
Deepayan Sarkar
deepayan at stat.wisc.edu
Sat Dec 4 22:12:54 CET 2004
On Saturday 04 December 2004 14:40, Tim Churches wrote:
> Andrew Robinson wrote:
> > Ruud,
> >
> > try something like the following (not debugged, no coffee yet):
> >
> >
> > xyplot(coupon.period ~ median, data=prepayment,
> > subscripts=T,
> > panel=function(x,y,subscripts,...){
> > panel.xyplot(x,y)
> > panel.segments(deel1$lcl[subscripts], deel$ucl[subscripts])
> > }
> > )
>
> Not quite:
>
> library(lattice)
> prepayment <- data.frame(median=c(10.89,12.54,10.62,8.46,7.54,4.39),
> ucl=c(NA,11.66,9.98,8.05,7.27,4.28),
> lcl=c(14.26,13.34,11.04,8.72,7.90,4.59),
> coupon.period=c('a','b','c','d','e','f'))
>
> xyplot(coupon.period ~ median, data=prepayment,
> subscripts=T,
> panel=function(x,y,subscripts,...){
> panel.xyplot(x,y)
> panel.segments(prepayment$lcl[subscripts],
> prepayment$ucl[subscripts]) }
> )
>
> throws the error:
>
> Error in max(length(x0), length(x1), length(y0), length(y1)) :
> Argument "x1" is missing, with no default
Right. Also, to make the resulting object self-contained (i.e. not
dependent on having a particular data frame in the scope), I would do
something similar to (either one of):
with(prepayment,
xyplot(coupon.period ~ median,
lcl = lcl, ucl = ucl,
panel=function(x, y, subscripts, lcl, ucl, ...) {
panel.xyplot(x, y, ...)
panel.segments(lcl[subscripts], as.numeric(y),
ucl[subscripts], as.numeric(y), ...)
}))
xyplot(coupon.period ~ median, data = prepayment,
lcl = prepayment$lcl, ucl = prepayment$ucl,
panel=function(x, y, subscripts, lcl, ucl, ...) {
panel.xyplot(x, y, ...)
panel.segments(lcl[subscripts], as.numeric(y),
ucl[subscripts], as.numeric(y), ...)
})
Deepayan
More information about the R-help
mailing list