Wie erstellt man ein Zeitstreuplot mit R?

8

Die Daten sind eine Reihe von Daten und Zeiten.

%Vor%

Mein Ziel war es, ein Streudiagramm mit dem Datum auf der horizontalen Achse (x) und der Zeit auf der vertikalen Achse (y) darzustellen. Ich denke, ich könnte auch eine Farbintensität hinzufügen, wenn es mehr als einmal für dasselbe Datum gibt.

Es war ziemlich einfach, ein Histogramm von Daten zu erstellen.

%Vor%
  1. Ich habe noch nicht herausgefunden, wie man ein Streudiagramm erstellt, bei dem die Achse Datum und / oder Zeit ist.
  2. Ich möchte auch Achse mit linearen Daten YYYY-MM-DD nicht brauchen, aber auch basierend auf Monaten wie MM-DD (so unterschiedliche Jahre akkumulieren), oder sogar mit einer Rotation auf Wochen.

Jede Hilfe, RTFM URI Slapping oder Hinweise ist willkommen.

    
karlcow 23.08.2011, 11:49
quelle

2 Antworten

15

Das Paket ggplot2 behandelt Daten und Zeiten ganz einfach.

Erstellen Sie einige Datums- und Uhrzeitdaten:

%Vor%

Dann nimm ggplot2 Magie. ggplot wird automatisch mit Datumsangaben arbeiten, aber um die Zeitachse korrekt formatieren zu können, verwenden Sie scale_y_datetime() :

%Vor%

Zum letzten Teil Ihrer Frage, zur Gruppierung nach Woche usw.: Um dies zu erreichen, müssen Sie die Daten möglicherweise in den gewünschten Buckets zusammenfassen. Sie können dafür möglicherweise plyr verwenden und dann die resultierenden Daten an ggplot übergeben.

    
Andrie 23.08.2011, 12:45
quelle
0

Ich würde damit beginnen, etwas über POSIXct, Strptime, Strftime und Difftime zu lesen. Mit diesen und verwandten Funktionen können Sie die gewünschten Teilmengen Ihrer Daten extrahieren. Die Formatierung ist ein wenig schwierig, also spielen Sie mit den Beispielen in den Hilfedateien Sobald Ihre Daten in eine POSIX-Klasse konvertiert wurden, konvertiert as.numeric () alle Werte in numerische Werte und erleichtert so das Sortieren, Plotten usw.

Bearbeiten: Andres Vorschlag, w / ggplot zu spielen, um Ihre Achsenspezifikationen zu vereinfachen, ist ein guter Vorschlag.

    
Carl Witthoft 23.08.2011 12:45
quelle