[R] ggplot 3-color gradient scales

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Mon Aug 24 07:33:44 CEST 2020


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



More information about the R-help mailing list