Jim, you can use the function appended below, which is part of package 
HandyStuff.  If you want an example, see ?lmEqn after installing HandyStuff, 
available at github.com/bryanhanson/HandyStuff.  Bryan

lmEqn <-
function(df = NULL, y = NULL, x = NULL,
        method = "lm", leg.loc = c(0, 0),
        xlab = NULL, ylab = NULL, title = NULL, ...) {
        
# work out a linear model first

        y1 <- df[,y]
        x1 <- df[,x]
        if (method == "lm") mod <- lm(y1 ~ x1)
        if (method == "rlm") mod <- rlm(y1 ~ x1)
        m <- mod$coef[2]
        b <- mod$coef[1]
        r2 <- round(cor(x1, y1)^2, 4)
        lab <- paste("m =", round(m, 3), "b =", round(b, 3), "r^2 =", r2, sep = 
"  ")
        if (method == "lm") lab <- paste("linear model: ", lab)
        if (method == "rlm") lab <- paste("robust linear model: ", lab)

# now plot the data

        p <- ggplot(df, aes_string(x = x, y = y))
        p <- p + geom_point()
        if (method == "lm") p <- p + geom_smooth(method = "lm")
        if (method == "rlm") p <- p + geom_smooth(method = "rlm")
        p <- p + geom_text(aes(x, y, label = lab), size = 5, hjust = 0, vjust = 
0,
        data = data.frame(x = leg.loc[1], y = leg.loc[2]), label = lab)
        
        if (!is.null(title)) p <- p + opts(title = title)
    if (!is.null(xlab)) p <- p + xlab(xlab)
    if (!is.null(ylab)) p <- p + ylab(ylab)

        p
        
        }


On Nov 10, 2011, at 8:45 AM, Durant, James T. (ATSDR/DTEM/PRMSB) wrote:

> Hello -
> 
> So I am trying to use ggplot2 to show a linear regression between two 
> variables, but I want to also show the fit of the line on the graph as well.
> 
> I am using ggplot2 for other graphics in what I am working on, so even though 
> this would be a fairly easy thing to do in Excel, I would prefer to do it in 
> R to keep my look and feel, and I think ggplot2 is just cooler.
> 
> Here is a sample script of what I am trying to accomplish:
> 
> df<-NULL
> df$x<-rnorm(100)
> df$y<-rnorm(100)
> df<-data.frame(df)
> 
> ggplot(df, aes(x=x,y=y))+geom_point()+geom_smooth(method=lm)
> 
> 
> # would like to be able to showr squared and slope/intercept of lm
> 
> VR
> 
> Jim
> 
> 
> James T. Durant, MSPH CIH
> Emergency Response Coordinator
> US Agency for Toxic Substances and Disease Registry
> Atlanta, GA 30341
> 770-378-1695
> 
> 
> 
> 
> 
>       [[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.

______________________________________________
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.

Reply via email to