J'ai des données de séries chronologiques que je souhaite visualiser sous forme de tracé 2D.
L'entrée est au format date ISO et valeur séparée par un espace, un enregistrement par ligne:
2010-10-21 23
2010-10-22 32
etc.
La sortie doit être un joli tracé 2D. Exigences de base:
- sortie vers une fenêtre X11 (comme aperçu) et vers un fichier png
- l'axe des x doit comprendre les dates et adapter naturellement les données, par exemple un écart entre 3 jours devrait être trois fois plus long qu'un écart entre 1 jour
- devrait être appelable à partir d'un script
- belle sortie et pratique à utiliser
Prime:
- sortie svg
J'ai essayé gnuplot
et cela fonctionne - il a un support de date:
gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d"
gnuplot> plot "test.dat" using 1:2
Mais j'ai quelques problèmes avec gnuplot:
- avec les paramètres par défaut, les tracés semblent très laids
- il est difficile de trouver des éléments dans le manuel - par exemple, lorsque je trace des points, comment utiliser les petits cercles remplis au lieu du signe "+" par défaut?
- le shell gnuplot est une douleur dans le cou - il n'utilise pas readline, il est cassé, l'achèvement de la commande est une blague, je ne sais pas comment activer les raccourcis vi - ou s'ils sont pris en charge, qu'en est-il de la recherche inversée, etc.
D'où ma question: quelles sont les alternatives pour visualiser les données de séries chronologiques?
Ou suis-je exagéré les problèmes de gnuplot?
software-rec
maxschlepzig
la source
la source
rrdtool create ...
une fois pour configurer la baserrdtool update ...
de données RRD, une fois par élément de données etrrdtool graph ...
pour générer un graphique.R est meilleur dans ce genre de chose que Gnuplot parce que:
Il s'agit d'un environnement de programmation complet, avec des API d'extension compatibles C et Fortran . Si votre ordinateur peut faire quelque chose, vous pouvez le faire avec R.
Beaucoup ont déjà apporté leurs solutions aux problèmes courants au CRAN : Comprehensive R Archive Network. Vous pourriez trouver les packages
zoo
etggplot2
utiles pour cette tâche.Il existe de nombreux livres sur l' analyse des séries chronologiques et R en général .
R a tout ce que vous avez demandé:
Sorties vers X11, PNG ou (avec un module complémentaire ) SVG
Cercles pleins pour les points du tracé: passez
pch=19
oupch=20
au par () ou aux points () . Il existe de nombreux autres symboles de point de tracé prédéfinis, ainsi que la totalité d'Unicode si vous utilisez une police prenant en charge Unicode.Graphiques sensibles au temps: si ceux intégrés n'ont pas la mise à l'échelle souhaitée, vous pouvez créer tout ce dont vous avez besoin avec les primitives de traçage de R
Appelable à partir d'un script: utilisez une
#!/usr/bin/Rscript
ligne shebang sur votre fichier programme RAgréable et pratique: il existe des interfaces graphiques, si vous le souhaitez, et si vous ne l'aimez pas, l'environnement par défaut commandé par commande possède de nombreuses fonctionnalités intéressantes, comme la possibilité de voir le code source R de nombreuses opérations intégrées, ce qui aide pour savoir comment le système est assemblé. (Oui, une grande partie de R est écrite en R!)
Jolis tracés: l'anticrénelage est la valeur par défaut si R est construit contre Le Caire, ce qu'il sera si c'est une construction récente sur Linux. Les anciennes versions de R peuvent ne pas avoir AA intégré. Pour une idée de la capacité de R si vous y mettez un peu de temps, vérifiez ceci:
(Cliquez sur l'image pour un article le décrivant.)
En ce qui concerne la ligne de commande gnuplot, vous pouvez la construire pour prendre en charge GNU readline, BSD libedit, ou comme solution de rechange, un schéma d'édition de ligne de commande intégré personnalisé. (Ceci selon la p.20 du manuel .) J'ai gnuplot 3.7 sur une machine et 4.0 sur une autre, et ils sont tous les deux construits avec readline. Votre binaire est-il construit sans aucun de ces éléments?
la source