Ich habe ein Diagramm von Linien mit Farben von schwarz bis grün. Allerdings möchte ich die Linien allmählich um ihren y-Wert bei "Value2" auf der x-Achse färben. Die Zeile mit dem höchsten y-Wert bei "Value2" sollte grün sein, die mit dem niedrigsten y-Wert bei "Value2" sollte schwarz sein.ggplot: weisen Sie die Farbe der Linien nach ihrem Wert an einem bestimmten Punkt der x-Achse zu
Wie kann ich die Farbe den Linien durch ihre y-Werte an einem bestimmten Punkt der x-Achse zuweisen?
Mein Code:
library(ggplot2)
x <- structure(list(ID = c("1998-06-05_area2", "1999-07-11_area2",
"1998-05-13_area1", "1998-05-20_area1", "1998-06-05_area2", "1999-07-11_area2",
"1998-05-13_area1", "1998-05-20_area1", "1998-06-05_area2", "1999-07-11_area2",
"1998-05-13_area1", "1998-05-20_area1"), variable = structure(c(1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("Value1",
"Value2", "Value3"), class = "factor"), value = c(322, 280, 210,
416, 384, 252, 329, 601, 83, 66, 100, 147)), .Names = c("ID",
"variable", "value"), na.action = structure(c(1L, 2L, 3L, 4L,
13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 25L, 26L, 27L, 28L), .Names = c("1",
"2", "3", "4", "13", "14", "15", "16", "17", "18", "19", "20",
"25", "26", "27", "28"), class = "omit"), row.names = c(5L, 6L,
7L, 8L, 9L, 10L, 11L, 12L, 21L, 22L, 23L, 24L), class = "data.frame")
pal <- colorRampPalette(c("black","green"))
colorlist <- pal(length(unique(x$ID)))
ggplot(data = x , aes(x = variable, y = value, color = ID)) +
geom_line(aes(group =ID),size=1) + geom_point(size = 2) +
scale_colour_manual(values=colorlist)