[R] Lattice graphics: adding lines to a plot
Deepayan Sarkar
deepayan at stat.wisc.edu
Thu Jul 29 15:19:53 CEST 2004
On Thursday 29 July 2004 06:37, Chuck Cleland wrote:
> How about this?
>
> library(lattice)
> xyplot(y ~ x, panel = function(x, y, ...){
> panel.xyplot(x, y, ...)
> panel.lmline(x, y, type="l")
> })
That should do it, except the type="l" is not required (panel.lmline
always draws a line anyway). There's also a shortcut for this, namely,
xyplot(y ~ x, type = c("p", "r"))
Depending on how you would want to generalize this to more than one
panel, you could also try
g <- lm( y ~ x )
xyplot(y ~ x,
panel = function(x, y, ...){
panel.xyplot(x, y, ...)
panel.abline(g, ...)
})
which draws the same 'global' fit in all panels.
Deepayan
> Matthew Walker wrote:
> > I am trying to use the Lattice package to produce the same result
> > as I can with the base graphics.
> >
> > With base graphics I can type:
> >
> > x <- 1:100
> > y <- x+rnorm(length(x))
> > g <- lm( y ~ x )
> > model.y <- g$coef[1]+g$coef[2]*x
> >
> > plot(x,y) # a plot of the data
> > lines( x, model.y ) # a plot of the model, superimposed on the
> > first plot
> >
> >
> > With Lattice graphics I've got this far:
> >
> > library(lattice)
> > plot1 <- xyplot(y ~ x)
> > plot2 <- xyplot(model.y ~ x, panel = function(x, y) { llines(x=x,
> > y=y) }) print(plot1, more=TRUE, position=c(0,0.5,1,1))
> > print(plot2, position=c(0,0,1,0.5))
> >
> > But this just produces two graphs, one above the other. How do I
> > overlay them? What should I be doing in order to get the same
> > result as with the base graphics?
More information about the R-help
mailing list