Currently I am using these settings in ggplot to make a gradient from red to blue. geom_point( aes(x, y, color=z) ) + scale_colour_gradient(low = "red",high = "blue") + z is a ratio, and currently I am able to identify which have high and low values, but I'd really like to be able to distinguish which are >1, <1, or close to 1 by color. It would be great if I could set a middle color in this gradient (eg. green) that is set the the value of 1, even if that is not the exact midpoint between my highest and lowest values. Is there a way to do this in R? Thank you, April [[alternative HTML version deleted]]
Check out scale_colour_gradient2() On August 23, 2020 8:12:06 PM PDT, April Ettington <aprilettington at gmail.com> wrote:>Currently I am using these settings in ggplot to make a gradient from >red >to blue. > >geom_point( aes(x, y, color=z) ) + >scale_colour_gradient(low = "red",high = "blue") + > >z is a ratio, and currently I am able to identify which have high and >low >values, but I'd really like to be able to distinguish which are >1, <1, >or >close to 1 by color. It would be great if I could set a middle color >in >this gradient (eg. green) that is set the the value of 1, even if that >is >not the exact midpoint between my highest and lowest values. Is there >a >way to do this in R? > >Thank you, >April > > [[alternative HTML version deleted]] > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >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.-- Sent from my phone. Please excuse my brevity.
Hello, Note that the midpoint argument can make a big difference. In the code below try commenting out the line where the default is changed. f <- function(x){ (x - min(x))/(max(x) - min(x)) } library(ggplot2) df1 <- iris[3:5] names(df1)[1:2] <- c("x", "y") df1$z <- ave(df1$y, df1$Species, FUN = f) ggplot(df1) + geom_point( aes(x, y, color = z) ) + scale_color_gradient2(low = "red", mid = "yellow", high = "blue", midpoint = 0.5 ) Hope this helps, Rui Barradas ?s 04:43 de 24/08/20, Jeff Newmiller escreveu:> Check out scale_colour_gradient2() > > On August 23, 2020 8:12:06 PM PDT, April Ettington <aprilettington at gmail.com> wrote: >> Currently I am using these settings in ggplot to make a gradient from >> red >> to blue. >> >> geom_point( aes(x, y, color=z) ) + >> scale_colour_gradient(low = "red",high = "blue") + >> >> z is a ratio, and currently I am able to identify which have high and >> low >> values, but I'd really like to be able to distinguish which are >1, <1, >> or >> close to 1 by color. It would be great if I could set a middle color >> in >> this gradient (eg. green) that is set the the value of 1, even if that >> is >> not the exact midpoint between my highest and lowest values. Is there >> a >> way to do this in R? >> >> Thank you, >> April >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >