Ich habe einige Zeitreihendaten, die ich als 2D-Plot visualisieren möchte.
Die Eingabe ist im ISO-Datumsformat und durch Leerzeichen getrennt, ein Datensatz pro Zeile:
2010-10-21 23
2010-10-22 32
etc.
Die Ausgabe sollte ein gut aussehender 2D-Plot sein. Grundlegende Anforderungen:
- Ausgabe in ein X11-Fenster (als Vorschau) und in eine PNG-Datei
- Die x-Achse muss die Daten verstehen und die Daten natürlich skalieren, z. B. sollte eine Lücke zwischen 3 Tagen dreimal so lang sein wie eine Lücke zwischen 1 Tag
- sollte über ein Skript aufrufbar sein
- schöne Ausgabe und bequem zu bedienen
Bonus:
- SVG-Ausgabe
Ich habe es versucht gnuplot
und es funktioniert - es hat eine Datumsunterstützung:
gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d"
gnuplot> plot "test.dat" using 1:2
Aber ich habe einige Probleme mit Gnuplot:
- Mit den Standardeinstellungen sehen Diagramme sehr hässlich aus
- Es ist schwierig, Dinge im Handbuch zu finden - z. B. beim Zeichnen von Punkten, wie verwende ich kleine gefüllte Kreise anstelle des Standardzeichens '+'?
- Die Gnuplot-Shell ist ein Schmerz im Nacken - sie verwendet keine Readline, sie ist defekt, die Befehlsvervollständigung ist ein Witz, ich weiß nicht, wie man vi-Verknüpfungen aktiviert - oder wenn sie unterstützt werden, was ist mit der umgekehrten Suche usw.
Daher meine Frage: Was sind die Alternativen zur Visualisierung von Zeitreihendaten?
Oder übertreibe ich die Gnuplot-Probleme?
software-rec
maxschlepzig
quelle
quelle
rrdtool create ...
einmal aus, um die RRD-rrdtool update ...
Datenbank einzurichten, einmal pro Datenelement undrrdtool graph ...
um ein Diagramm zu erstellen .R ist in so etwas besser als Gnuplot, weil:
Es ist eine vollständige Programmierumgebung mit C- und Fortran-kompatiblen Erweiterungs-APIs . Wenn Ihr Computer etwas kann, können Sie es mit R tun.
Viele haben bereits ihre Lösungen für häufig auftretende Probleme in das CRAN : Comprehensive R Archive Network eingebracht . Möglicherweise finden Sie die
zoo
undggplot2
-Pakete hilfreich für diese Aufgabe.Es gibt viele Bücher über Zeitreihenanalyse und R im Allgemeinen .
R hat alles, wonach Sie gefragt haben:
Ausgaben an X11, PNG oder (mit einem Add-On ) SVG
Gefüllte Kreise für Plotpunkte: pass
pch=19
oderpch=20
to par () oder points () . Es gibt viele andere vordefinierte Plotpunktsymbole sowie Unicode, wenn Sie eine Schriftart mit Unicode-Unterstützung verwenden.Zeitbewusstes Diagramm: Wenn die integrierten Diagramme nicht die gewünschte Skalierung haben, können Sie mit den Plotprimitiven von R alles erstellen, was Sie benötigen
Von einem Skript aus aufrufbar: Verwenden Sie eine
#!/usr/bin/Rscript
Shebang-Zeile in Ihrer R-ProgrammdateiSchön und praktisch: Es gibt GUI-Frontends, wenn Sie möchten und wenn Sie nicht möchten, bietet die standardmäßige befehlsgesteuerte Umgebung viele nette Funktionen, wie die Möglichkeit, den R-Quellcode vieler integrierter Operationen anzuzeigen, was hilfreich ist um zu lernen, wie das System zusammengesetzt ist. (Ja, viel von R ist in R geschrieben!)
Hübsche Handlungen: Antialiasing ist die Standardeinstellung, wenn R gegen Kairo erstellt wird. Dies ist der Fall, wenn es sich um eine neuere Version unter Linux handelt. In alten Versionen von R ist möglicherweise kein AA integriert. Eine Vorstellung von der Leistungsfähigkeit von R, wenn Sie etwas Zeit investieren, finden Sie hier:
(Klicken Sie auf das Bild für einen Artikel, der es beschreibt.)
In Bezug auf die Gnuplot-Befehlszeile können Sie sie erstellen, um GNU-Readline, BSD libedit oder als Ersatz ein benutzerdefiniertes integriertes Befehlszeilen-Bearbeitungsschema zu unterstützen. (Dies gemäß S.20 des Handbuchs .) Ich habe Gnuplot 3.7 auf einem Computer und 4.0 auf einem anderen, und beide sind mit Readline erstellt. Ist Ihre Binärdatei ohne diese erstellt?
quelle