Comment visualiser les données de séries chronologiques?

8

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é gnuplotet 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?

maxschlepzig
la source

Réponses:

5

Le but de l'existence de RRDTool est de tracer des données de séries chronologiques, mais il est principalement destiné à un graphique automatisé et peut ne pas être le mieux adapté à vos besoins.

Cela dit:

  • Il peut sortir en PNG ou SVG, mais n'a pas de fonctionnalité de prévisualisation.
  • L'échelle de temps est intégrée.
  • Facilement scripté (accès en ligne de commande ou bibliothèques dans de nombreux langages de script).
  • La sortie peut être faite pour être assez décente.

Graphique RRDTool

Kowh
la source
Cela semble intéressant, l'aperçu manquant n'est pas si mal - il suffit de générer un png et d'utiliser une visionneuse d'images côte à côte. Pourriez-vous donner un exemple d'appel de ligne de commande simple de cet outil?
maxschlepzig
Fondamentalement, vous exécutez rrdtool create ...une fois pour configurer la base rrdtool update ...de données RRD, une fois par élément de données et rrdtool graph ...pour générer un graphique.
Kowh
12

R est meilleur dans ce genre de chose que Gnuplot parce que:

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

  2. Beaucoup ont déjà apporté leurs solutions aux problèmes courants au CRAN : Comprehensive R Archive Network. Vous pourriez trouver les packages zooet ggplot2utiles pour cette tâche.

  3. 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=19ou pch=20au 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/Rscriptligne shebang sur votre fichier programme R

  • Agré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?

Warren Young
la source
J'ai commencé à utiliser R pour toutes mes statistiques et à tracer au travail, c'est génial!
jsbillings
Bon indice sur la libération. Eh bien, j'utilise le paquet gnuplot par défaut sur Ubuntu 10.04. Il semble qu'il soit lié à libedit qui semble au moins supporter le mode vi. Mais l'achèvement des commandes est juste minime (ne fonctionne que pour les noms de fichiers) et pas avec les commandes gnuplot, c'est-à-dire qu'il est fondamentalement inutile (ce n'est pas la faute de libedit).
maxschlepzig
Pourriez-vous ajouter un exemple de session R simple pour générer un tracé de base (lire le fichier (esquissé ci-dessus) et émettre une fonction de tracé, je suppose)?
maxschlepzig