R: Zeichnen Sie eine Zeitreihe mit Quantilen mit ggplot2

8

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!

    
jla 14.06.2011, 07:39
quelle

2 Antworten

9

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:

%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.

%Vor%

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:

%Vor%

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.

    
Chase 14.06.2011, 11:18
quelle
5

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:

%Vor%

PS. Ich habe Ihre Daten wie folgt neu erstellt:

%Vor%     
Andrie 14.06.2011 11:11
quelle

Tags und Links