Relleno de color gradiante en una barplot en ggplot2
Me gustaría rellenar en degradado una gráfica de barras de ggplot2
basada en los valores de Y, pero me gustaría poder establecer los colores manualmente. Este ejemplo es casi lo que necesito, pero establece los límites de la paleta de colores en función de los valores de Y, mientras que yo quiero establecerlos manualmente en función de un umbral de estrés biológico.
Aquí tienes un código de ejemplo basado en el ejemplo vinculado.
d <- data.frame(x = 1:4, y = c(0.1, 0.3, 1, 0.6))
# Interpolar valores desde cero hasta y y crear el número correspondiente de valores de x
vals <- lapply(d$y, function(y) seq(0, y, by = 0.01))
y <- unlist(vals)
mid <- rep(d$x, lengths(vals))
d2 <- data.frame(x = mid - 0.4,
xend = mid + 0.4,
y = y,
yend = y)
ggplot(data = d2, aes(x = x, xend = xend, y = y, yend = yend, color = y)) +
geom_segment(size = 2) +
scale_color_gradient2(low = "green4", mid = "yellow", high = "red",
midpoint = max(d2$y)/2) +
coord_cartesian(ylim = c(0, 2))
Me gustaría que el color rojo aparezca cuando el valor de Y sea igual a 2, en lugar de tomar el valor máximo de Y en el marco de datos.
davy.ai
Para establecer manualmente los límites de la paleta de colores en función de un umbral de estrés biológico en lugar del valor máximo de Y en el marco de datos, puedes utilizar el argumento “limits” en la función “scale_color_gradient2”. Aquí tienes un ejemplo de código actualizado basado en el original:
En este código modificado, hemos agregado una variable “threshold” y la hemos establecido en el valor deseado del umbral de estrés biológico. Luego, hemos reemplazado “max(d2$y)/2” por “threshold” en el argumento “midpoint” de “scale_color_gradient2”. Por último, hemos establecido manualmente los límites de la escala de colores utilizando el argumento “limits” en “scale_color_gradient2”. Los límites se establecen en “c(0, threshold, 2)” para incluir todos los valores entre 0 y el umbral de estrés en verde, los valores entre el umbral y 2 en el gradiente elegido, y cualquier valor por encima de 2 en rojo.
Esto dará como resultado un gráfico de barras en “ggplot2” con un relleno degradado basado en los valores de Y, utilizando colores y límites establecidos manualmente en función de un umbral específico de estrés biológico.