Given the following data, I want a scatterplot with the data points and the
predictions from the regression.
Sigma <- matrix(c(1,.6,1,.6), 2)
mu <- c(0,0)
dat <- mvrnorm(5000, mu, Sigma)
x <- dat[,1] * 50 + 200
y <- dat[,2] * 50 + 200
fm <- lm(y ~ x)
### This gives the regression line, but not the data
xyplot(y ~ x,
type = c('g', 'p'),
panel = function(x, y){
panel.lines(x, predict(fm))
}
)
### This gives both data but as point
xyplot(y + predict(fm) ~ x,
type = c('g', 'p'),
)
I know I can add an abline easily, but my problem is a bit more complex and the
code above is just an example. What is the best way for the predicted data to
form a solid line and let the data points remain as points
Harold
[[alternative HTML version deleted]]
On Wed, Nov 23, 2011 at 10:48 PM, Doran, Harold <HDoran at air.org> wrote:> Given the following data, I want a scatterplot with the data points and the predictions from the regression. > > Sigma <- matrix(c(1,.6,1,.6), 2) > mu <- c(0,0) > dat <- mvrnorm(5000, mu, Sigma) > > x <- dat[,1] * 50 + 200 > y <- dat[,2] * 50 + 200 > > fm <- lm(y ~ x) > > ### This gives the regression line, but not the data > xyplot(y ~ x, > ? ? ? ? ? ? ? type = c('g', 'p'), > ? ? ? ? ? ? ? panel = function(x, y){ > ? ? ? ? ? ? ? panel.lines(x, predict(fm)) > ? ? ? ? ? ? ? } > ) > > ### This gives both data but as point > xyplot(y + predict(fm) ~ x, > ? ? ? ? ? ? ? type = c('g', 'p'), > ? ? ? ? ? ? ? ) > > I know I can add an abline easily, but my problem is a bit more complex and the code above is just an example. > What is the best way for the predicted data to form a solid line and let the data points remain as pointsSee http://lattice.r-forge.r-project.org/Vignettes/src/lattice-tricks/regression-lines.pdf (This is a work in progress, so feedback would be appreciated.) -Deepayan
Hi:
Try this:
library('lattice')
xyplot(y ~ x,
type = c('g', 'p'),
panel = function(x, y, ...){
panel.xyplot(x, y, ...)
panel.lines(x, predict(fm), col = 'black', lwd = 2)
}
)
HTH,
Dennis
On Wed, Nov 23, 2011 at 9:18 AM, Doran, Harold <HDoran at air.org>
wrote:> Given the following data, I want a scatterplot with the data points and the
predictions from the regression.
>
> Sigma <- matrix(c(1,.6,1,.6), 2)
> mu <- c(0,0)
> dat <- mvrnorm(5000, mu, Sigma)
>
> x <- dat[,1] * 50 + 200
> y <- dat[,2] * 50 + 200
>
> fm <- lm(y ~ x)
>
> ### This gives the regression line, but not the data
> xyplot(y ~ x,
> ? ? ? ? ? ? ? type = c('g', 'p'),
> ? ? ? ? ? ? ? panel = function(x, y){
> ? ? ? ? ? ? ? panel.lines(x, predict(fm))
> ? ? ? ? ? ? ? }
> )
>
> ### This gives both data but as point
> xyplot(y + predict(fm) ~ x,
> ? ? ? ? ? ? ? type = c('g', 'p'),
> ? ? ? ? ? ? ? )
>
> I know I can add an abline easily, but my problem is a bit more complex and
the code above is just an example. What is the best way for the predicted data
to form a solid line and let the data points remain as points
>
> 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.
>