Great, thanks Frede, This works perfectly. Ive tested these correlations with ones in sigma plot and excel and for some reason the r squared value is different. Any idea why this is? Thanks again for your help.
Cheers On Fri, Apr 25, 2014 at 11:57 AM, Frede Aakmann Tøgersen <fr...@vestas.com>wrote: > Hi > > Have a look on how panel.smooth is defined: > > panel.smooth > function (x, y, col = par("col"), bg = NA, pch = par("pch"), > cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) > { > points(x, y, pch = pch, col = col, bg = bg, cex = cex) > ok <- is.finite(x) & is.finite(y) > if (any(ok)) > lines(stats::lowess(x[ok], y[ok], f = span, iter = iter), > col = col.smooth, ...) > } > <bytecode: 0x000000000bfb2ce0> > <environment: namespace:graphics> > > > And change that to something like this: > > > panel.regression <- function (x, y, col = par("col"), bg = NA, pch = > par("pch"), > cex = 1, col.regres = "red", ...) > { > points(x, y, pch = pch, col = col, bg = bg, cex = cex) > ok <- is.finite(x) & is.finite(y) > if (any(ok)) > abline(stats::lm(y[ok] ~ x[ok]), col = col.regres, ...) > } > > > Substitute panel.smooth with panel.regression in your pairs.panel() > function and you have it. > > > > Yours sincerely / Med venlig hilsen > > > Frede Aakmann Tøgersen > Specialist, M.Sc., Ph.D. > Plant Performance & Modeling > > Technology & Service Solutions > T +45 9730 5135 > M +45 2547 6050 > fr...@vestas.com > http://www.vestas.com > > Company reg. name: Vestas Wind Systems A/S > This e-mail is subject to our e-mail disclaimer statement. > Please refer to www.vestas.com/legal/notice > If you have received this e-mail in error please contact the sender. > > > -----Original Message----- > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > > On Behalf Of Shane Carey > > Sent: 25. april 2014 12:26 > > To: r-help@r-project.org > > Subject: [R] Linear line on pairs plot > > > > Hi, > > > > Im trying to plot a linear line on the scatter plot using the pairs() > > function. At the moment the line is non linear. However, I want a linear > > line and the associated R value. > > > > Here is my current code: > > > > panel.cor.scale <- function(x, y, digits=2, prefix="", cex.cor) > > { > > usr <- par("usr"); on.exit(par(usr)) > > par(usr = c(0, 1, 0, 1)) > > r = (cor(x, y,use="pairwise")) > > txt <- format(c(r, 0.123456789), digits=digits)[1] > > txt <- paste(prefix, txt, sep="") > > if(missing(cex.cor)) cex <- 0.8/strwidth(txt) > > text(0.5, 0.5, txt, cex = cex * abs(r)) > > } > > > > > > panel.cor <- function(x, y, digits=2, prefix="", cex.cor) > > { > > usr <- par("usr"); on.exit(par(usr)) > > par(usr = c(0, 1, 0, 1)) > > r = (cor(x, y,use="pairwise")) > > txt <- format(c(r, 0.123456789), digits=digits)[1] > > txt <- paste(prefix, txt, sep="") > > if(missing(cex.cor)) cex <- 0.8/strwidth(txt) > > text(0.5, 0.5, txt, cex = cex ) > > } > > > > > > panel.hist <- function(x, ...) > > { > > usr <- par("usr"); on.exit(par(usr)) > > par(usr = c(usr[1:2], 0, 1.5) ) > > h <- hist(x, plot = FALSE) > > breaks <- h$breaks; nB <- length(breaks) > > y <- h$counts; y <- y/max(y) > > rect(breaks[-nB], 0, breaks[-1], y, col="cyan", ...) > > } > > > > > > pairs.panels <- function (x,y,smooth=TRUE,scale=FALSE) > > {if (smooth ){ > > if (scale) { > > > > > pairs(x,diag.panel=panel.hist,upper.panel=panel.cor.scale,lower.panel=pane > > l.smooth) > > } > > else > > {pairs(x,diag.panel=panel.hist,upper.panel=panel.cor,lower.panel= > panel.sm > > ooth) > > } #else > > {pairs(x,diag.panel=panel.hist,upper.panel=panel.cor,lower.panel= > panel.sm > > ooth) > > } > > else #smooth is not true > > { if (scale) {pairs(x,diag.panel=panel.hist,upper.panel=panel.cor.scale) > > } else {pairs(x,diag.panel=panel.hist,upper.panel=panel.cor) } > > } #end of else (smooth) > > } #end of function > > > > pairs.panels(iris[1:4]) > > > > Thanks > > > > -- > > Shane > > > > [[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. > -- Shane [[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.