Dylan Beaudette
2009-Jan-23 23:00 UTC
[R] lattice: reverse order of panel.lmline, panel.smooth
Hi, is it possible to reverse the order in which panel.lmline() or panel.smooth() operation in xyplot() ? This type of situation might occur when plotting some variable with depth, but the relation we want to describe is variable ~ depth, and not depth ~ variable, as the plotting formula would suggest. # an example: d <- 1:100 v <- d * rnorm(100) xyplot(d ~ v, ylim=c(100,0), type=c('p','r','smooth')) # points are positioned correctly, but the lmline and smoothed line are in opposite the "desired" orientation. obviously xyplot() has no way of knowing this, but can it be convinced? Thanks, Dylan -- Dylan Beaudette Soil Resource Laboratory http://casoilresource.lawr.ucdavis.edu/ University of California at Davis 530.754.7341
Deepayan Sarkar
2009-Jan-24 00:45 UTC
[R] lattice: reverse order of panel.lmline, panel.smooth
On Fri, Jan 23, 2009 at 3:00 PM, Dylan Beaudette <debeaudette at ucdavis.edu> wrote:> Hi, > > is it possible to reverse the order in which panel.lmline() or panel.smooth() > operation in xyplot() ? This type of situation might occur when plotting some > variable with depth, but the relation we want to describe is variable ~ > depth, and not depth ~ variable, as the plotting formula would suggest. > > > # an example: > d <- 1:100 > v <- d * rnorm(100) > xyplot(d ~ v, ylim=c(100,0), type=c('p','r','smooth')) > > # points are positioned correctly, but the lmline and smoothed line are in > opposite the "desired" orientation. obviously xyplot() has no way of knowing > this, but can it be convinced?type="g", "smooth", "r", etc. are all convenience shortcuts for other panel functions (panel.grid, panel.loess, panel.lmline, respectively). Whenever you find its use limiting, you should consider writing an explicit panel function. In this case, simply adding 'horizontal=TRUE' will suffice for the smooth (it gets passed on to panel.loess), but not for panel.lmline (maybe I should add it 'horizontal' as an argument to it too). -Deepayan