Ich versuche, die Farbe der Linie in einem R-Diagramm (innerhalb der gleichen Reihe von Daten) zu variieren. Zum Beispiel, wenn Sie Punkte hatten, die die Temperatur für Wochen des Jahres zeigen, und sie sind verbunden mit geom_line()
oder gleichwertig, wie würde ich sagen, dass die Linie für höhere Temperaturwochen tiefer rot ist und sich allmählich ändert, um in kälteren Wochen gelb zu sagen? (wenn BOTH Punkte und Linie über die gleiche Palette/den gleichen Gradienten variieren könnten - sagen wir Temperatur, wäre das ideal).Wie variiere LINE Farbe mit einer Variablen in R-Grafik (ggplot oder ähnlich)
bp.df <- NULL
bp.weeks <- 26
bp.days <- 7 * bp.weeks
bp.df$day <- 1:bp.days
bp.df$week <- ceiling(bp.df$day/7)
bp.mean.normal <- 100
bp.sd.normal <- 20
bp.df <- as.data.frame(bp.df)
bp.df$normal <- rnorm(nrow(bp.df),bp.mean.normal, bp.sd.normal)
bp.df$day <- as.numeric(bp.df$day)
# make sure ggplot2 is installed and loaded
g <- ggplot(bp.df, aes(x = day, y = normal, color = normal)) +
geom_point() +
geom_line(col = bp.df$normal)
g
Warum stimmen die Linienfarben nicht mit den Werten der "normalen" Variablen überein? Ich verstehe, dass die Linien, da sie zwei Punkte verbinden, "entscheiden" müssen, welchen Wert man verwenden soll, aber diese Ausgabe scheint die Farben völlig zufällig zu machen.
Wenn das Variieren über einen Gradienten nicht funktioniert, wie würde ich die Linie für die ersten 50 Tage rot machen, grün für die nächsten 50 usw.?
Es _does_ match; Es wird der Wert von "normal" für den am weitesten links liegenden Punkt des Segments verwendet, da dies der Vektor ist, den Sie über "aes" übergeben. Um die Farbe für jeweils 50 Tage variieren zu lassen, füge eine Variable hinzu, die als Farbästhetik übergeben wird, z. 'ggplot (bp.df, aes (x = tag, y = normal, farbe = schneiden (tag, seq (0, 200, 50)))) + geom_point() + geom_line()' – alistaire
Danke, das und die Der nächste Kommentar hat meine Verwirrung eindeutig geklärt. Natürlich ist eine separate Variable sinnvoll, um die Farben zu steuern. –