[R] ggplot 3-color gradient scales

PIKAL Petr petr@p|k@| @end|ng |rom prechez@@cz
Tue Aug 25 12:49:39 CEST 2020


Hi

Maybe scale_colour_manual?

Cheers
Petr
> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of April Ettington
> Sent: Tuesday, August 25, 2020 11:39 AM
> To: Rui Barradas <ruipbarradas using sapo.pt>
> Cc: r-help using r-project.org
> Subject: Re: [R] ggplot 3-color gradient scales
> 
> 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]]
> 
> ______________________________________________
> 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