Ich muss eine Zeitreihe mit ggplot2 plotten. Für jeden Punkt der Zeitreihe habe ich auch einige Quantile, beispielsweise 0,05, 0,25, 0,75, 0,95, d. H. Ich habe fünf Daten für jeden Punkt. Zum Beispiel:
%Vor%Idealerweise hätte ich gerne das 0,5-Quantil als schwarze Linie und die anderen als schattierte Farbintervalle, die die schwarze Linie umgeben. Was ist der beste Weg, dies zu tun? Ich habe mich ohne Glück umgesehen, ich kann keine Beispiele dafür finden, noch weniger mit ggplot2.
Jede Hilfe wäre willkommen.
Salud!
Macht das, was Sie wollen? Der Trick zu ggplot
ist zu verstehen, dass Daten im langen Format erwartet werden. Dies bedeutet oft, dass wir die Daten transformieren müssen, bevor sie plotten können, normalerweise mit melt()
.
Nachdem Sie Ihre Daten mit textConnection()
eingelesen und ein Objekt mit dem Namen dat
erstellt haben, gehen Sie wie folgt vor:
Gibt Ihnen:
Nachdem Sie Ihre Frage erneut gelesen haben, möchten Sie vielleicht schattierte Farbbänder außerhalb der mittleren Schätzung statt Linien? Wenn dem so ist, probier das aus. Der einzige wirkliche Trick hier ist, dass wir group = 1
als Ästhetik übergeben, damit sich geom_line()
korrekt mit Faktor- / Zeichendaten verhält. Zuvor gruppierten wir uns nach der Variablen, die den gleichen Effekt hatte. Beachten Sie auch, dass wir nicht mehr die Datei melt
ed data.frame verwenden, da uns der wide data.frame in diesem Fall gut gefällt.
Bearbeiten: Um eine Legende für den vorhergesagten Wert zu erzwingen
Wir können den gleichen Ansatz verwenden, den wir für die Ebenen geom_ribbon()
verwendet haben. Wir fügen eine Ästhetik zu geom_line()
hinzu und legen dann die Werte dieser Ästhetik mit scale_colour_manual()
fest:
Es gibt vielleicht effizientere Wege, das zu tun, aber das ist die Art und Weise, wie ich sie immer benutzt habe und mit der ich ziemlich guten Erfolg hatte. YMMV.
Angenommen, Ihr dat.frame heißt df
:
Die einfachste ggplot
-Lösung ist die Boxplot-Geom. Dies ergibt eine schwarze Mittellinie mit gefüllten Kästchen zu den mittleren und oberen Positionen.
Da Sie Ihre Daten vorab zusammengefasst haben, ist es wichtig, den Parameter stat="identity"
anzugeben:
PS. Ich habe Ihre Daten wie folgt neu erstellt:
%Vor%Tags und Links r ggplot2 time-series