[R] ggplot 3-color gradient scales

April Ettington @pr||ett|ngton @end|ng |rom gm@||@com
Tue Aug 25 11:38:42 CEST 2020


Is there a way to set it to 3 color categories instead of a gradient?  Like
if the color is based on the numbers in a dataframe column, can I make it
so anything >1.2 is red, <0.8 is blue, and anything in the middle is green?


On Mon, Aug 24, 2020 at 6:28 PM April Ettington <aprilettington using gmail.com>
wrote:

> Thank you so much!
>
>
> On Mon, Aug 24, 2020 at 5:33 PM Rui Barradas <ruipbarradas using sapo.pt> wrote:
>
>> 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.
>> >
>>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list