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 <apriletting...@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@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.


______________________________________________
R-help@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.

Reply via email to