tianshu
2015-Feb-28 17:07 UTC
[R] scatter plot matrix with multiple trend lines and p values
I am trying to create a scatter plot matrix in which the lower panels contain scatter plots colored by group with trend lines by group, and the upper panels contain r and p values. Using pairs() I was able to get close (ie, scatter plot matrix on bottom with one trend line and correlation coefficients and p values in the upper panel) but was unable to add two lines. Using spm() I was able to get the multiple trend lines, but not the upper panel statistics. Does anyone know of a way to accomplish this? My code using pairs: pairs(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width, data = iris, bg=c("red","blue","green")[iris$Species], pch = 22, lower.panel =my_line <- function(x,y,...){ points(x,y,...) abline(a = lm(y ~ x)$coefficients[1] , b = lm(y ~ x)$coefficients[2] , ...) }, upper.panel = panel.cor <- function(x, y, digits = 2, cex.cor, ...) { usr <- par("usr"); on.exit(par(usr)) par(usr = c(0, 1, 0, 1)) # correlation coefficient r <- cor(x, y) txt <- format(c(r, 0.123456789), digits = digits)[1] txt <- paste("r= ", txt, sep = "") text(0.5, 0.6, txt) # p-value calculation p <- cor.test(x, y)$p.value txt2 <- format(c(p, 0.123456789), digits = digits)[1] txt2 <- paste("p= ", txt2, sep = "") if(p<0.01) txt2 <- paste("p= ", "<0.01", sep = "") text(0.5, 0.4, txt2) }) -- View this message in context: http://r.789695.n4.nabble.com/scatter-plot-matrix-with-multiple-trend-lines-and-p-values-tp4703996.html Sent from the R help mailing list archive at Nabble.com. [[alternative HTML version deleted]]