Clayton K Collings
2011-Jun-10 01:12 UTC
[R] smoothScatter function question and adding a legend
Hello, I have a few questions, regarding the smoothScatter function. I have a scatter plot with more than 500,000 data points for two samples. So, I am wanting to display the density in colors to convince people that my good correlation coefficient is not due to an "influential point effect" and plus, I also want to make my scatter plot look pretty. Anyway ... I have been able to make the plot, but I have a couple of questions about it. I also want to make a legend for it, which I don't know how to do. I have only been playing around with R for a few weeks now off and on. So, I am definitely a beginner. 1. I have 10 colors for my plot: white representing zero density and dark red representing the maximum density (I presume). According to the R documentation, the transformation argument represents the "function mapping the density scale to the color scale." Note that in my R code below, transformation = function(x) x^0.14. I was wondering how exactly or mathematically that this function relates the density to color. I believe the colorRampPalette ramps colors between 0 and 1. I am not sure if x represents the color or the density. Since I have 10 colors, I suppose the colorRampPalette would assign values of 0, 0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88, and 1 for white to dark red. I am not sure though. Does anyone know how this works? I am sure its not too too complicated. 2. In a related issue, I also would like to make a legend for this plot. Then, I would be able to see the transformation function's effects on the color-density relationship. Could someone help me in making a legend for my smoothScatter plot? I would like to place it immediately to the right of my plot as a vertical bar, matching the vertical length of the plot as is often convention. I really like the smoothScatter function. It is easy to use, and I believe it's relatively new. Thanks in advance. -Clayton> clayton <- c("white", "lightblue", "blue", "darkgreen", "green", "yellow", "orange", "darkorange", "red", "darkred") > x <- read.table("c:/users/ccolling/log_u1m1.txt", sep ="\t") > smoothScatter(x$V8~x$V7,nbin=1000, colramp = colorRampPalette(c(clayton)), nrpoints=Inf, pch="", cex=.7, transformation = function(x) x^.14, col="black", main="M1 vs. M3 (r = 0.92)", xlab="Normalized M1", ylab="Normalized M2", cex.axis = 1.75, cex.lab = 1.25 cex.main = 2)
Clayton K Collings
2011-Jun-12 01:52 UTC
[R] smoothScatter function (color density question) and adding a legend
Dear R experts, I am resending my questions below one more time just in case someone out there could help but missed my email. I don't think my questions are too hard. I am most concerned about the transformation function. See below. Thanks, Clayton Hello, I have a few questions, regarding the smoothScatter function. I have a scatter plot with more than 500,000 data points for two samples. So, I am wanting to display the density in colors to convince people that my good correlation coefficient is not due to an "influential point effect" and plus, I also want to make my scatter plot look pretty. Anyway ... I have been able to make the plot, but I have a couple of questions about it. I also want to make a legend for it, which I don't know how to do. I have only been playing around with R for a few weeks now off and on. So, I am definitely a beginner. 1. I have 10 colors for my plot: white representing zero density and dark red representing the maximum density (I presume). According to the R documentation, the transformation argument represents the "function mapping the density scale to the color scale." Note that in my R code below, transformation = function(x) x^0.14. I was wondering how exactly or mathematically that this function relates the density to color. I believe the colorRampPalette ramps colors between 0 and 1. I am not sure if x represents the color or the density. Since I have 10 colors, I suppose the colorRampPalette would assign values of 0, 0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88, and 1 for white to dark red. I am not sure though. Does anyone know how this works? I am sure its not too too complicated. 2. In a related issue, I also would like to make a legend for this plot. Then, I would be able to see the transformation function's effects on the color-density relationship. Could someone help me in making a legend for my smoothScatter plot? I would like to place it immediately to the right of my plot as a vertical bar, matching the vertical length of the plot as is often convention. I really like the smoothScatter function. It is easy to use, and I believe it's relatively new. Thanks in advance. -Clayton> clayton <- c("white", "lightblue", "blue", "darkgreen", "green", "yellow", "orange", "darkorange", "red", "darkred") > x <- read.table("c:/users/ccolling/log_u1m1.txt", sep ="\t") > smoothScatter(x$V8~x$V7,nbin=1000, colramp = colorRampPalette(c(clayton)), nrpoints=Inf, pch="", cex=.7, transformation = function(x) x^.14, col="black", main="M1 vs. M3 (r = 0.92)", xlab="Normalized M1", ylab="Normalized M2", cex.axis = 1.75, cex.lab = 1.25 cex.main = 2)