-----Original Message-----
From: R-help <r-help-bounces at r-project.org> On Behalf Of April Ettington
Sent: Tuesday, August 25, 2020 11:39 AM
To: Rui Barradas <ruipbarradas at sapo.pt>
Cc: r-help at 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 at gmail.com>
wrote:
Thank you so much!
On Mon, Aug 24, 2020 at 5:33 PM Rui Barradas <ruipbarradas at sapo.pt>
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]]