¿Cómo visualizar datos de series temporales?

8

Tengo algunos datos de series de tiempo que quiero visualizar como trama 2d.

La entrada tiene formato de fecha ISO y el valor está separado por espacio, un registro por línea:

2010-10-21 23
2010-10-22 32
etc.

La salida debe ser una buena gráfica en 2D. Requerimientos básicos:

  • salida a una ventana X11 (como vista previa) y a un archivo png
  • el eje x debe comprender las fechas y escalar los datos de forma natural, por ejemplo, un espacio entre 3 días debe ser tres veces más largo que un espacio entre 1 día
  • debe ser invocable desde un script
  • buen resultado y conveniente de usar

Prima:

  • salida de svg

Lo intenté gnuploty funciona, tiene cierto soporte de fecha:

gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d"
gnuplot> plot "test.dat" using 1:2

Pero tengo algunos problemas con gnuplot:

  • con la configuración predeterminada, las parcelas se ven muy feas
  • es difícil encontrar cosas en el manual; por ejemplo, al trazar puntos, ¿cómo uso pequeños círculos rellenos en lugar del signo predeterminado '+'?
  • el shell gnuplot es un dolor en el cuello: no usa readline, está roto, la finalización del comando es una broma, no sé cómo habilitar los atajos vi, o si son compatibles, ¿qué pasa con la búsqueda inversa, etc.

De ahí mi pregunta: ¿Cuáles son las alternativas para visualizar datos de series temporales?

¿O estoy exagerando los problemas de gnuplot?

maxschlepzig
fuente

Respuestas:

5

Todo el propósito de existencia de RRDTool es trazar datos de series de tiempo, pero está destinado principalmente a gráficos automáticos y puede que no sea el mejor para sus necesidades.

Eso dijo:

  • Puede emitir en PNG o SVG, pero no tiene funcionalidad de vista previa.
  • La escala de tiempo está incorporada.
  • Fácil de escribir (acceso a la línea de comandos o bibliotecas en muchos lenguajes de secuencias de comandos).
  • La salida se puede hacer que parezca bastante decente.

Gráfico RRDTool

Kowh
fuente
Suena interesante, la vista previa faltante no es tan mala: solo generar un png y usar un visor de imágenes uno al lado del otro debería estar bien. ¿Podría dar un ejemplo de llamada de línea de comando simple de esta herramienta?
maxschlepzig
Básicamente se ejecuta rrdtool create ...una vez para configurar el RRD db, rrdtool update ...una vez por pieza de datos y rrdtool graph ...generar un gráfico.
Kowh
12

R es mejor en este tipo de cosas que Gnuplot porque:

  1. Es un entorno de programación completo, con API de extensión compatibles con C y Fortran . Si su computadora puede hacer algo, puede hacerlo con R.

  2. Muchos ya han aportado sus soluciones a problemas comunes a la CRAN : Red global de archivos R. Puede encontrar los paquetes zooy ggplot2útiles para esta tarea.

  3. Hay muchos libros sobre análisis de series temporales y R en general .

R tiene todo lo que pediste:

  • Salidas a X11, PNG o (con un complemento ) SVG

  • Los círculos negros para puntos de la trama: pase pch=19o pch=20de par () o puntos () . Hay muchos otros símbolos de puntos de trazado predefinidos, además de todos Unicode si está utilizando una fuente con soporte Unicode.

  • Gráficos conscientes del tiempo: si los integrados no tienen la escala que desea, puede construir cualquier cosa que necesite con las primitivas de trazado de R

  • Se puede llamar desde un script: use una #!/usr/bin/Rscriptlínea shebang en su archivo de programa R

  • Agradable y conveniente: hay interfaces gráficas de usuario, si lo desea, y si no le gusta, el entorno predeterminado basado en comandos tiene muchas características interesantes, como la capacidad de ver el código fuente R de muchas operaciones integradas, lo que ayuda para aprender cómo se arma el sistema. (Sí, ¡gran parte de R está escrito en R!)

  • Parcelas bonitas: Antialiasing es el valor predeterminado si R se compila contra Cairo, lo que será si se trata de una compilación reciente en Linux. Las versiones antiguas de R pueden no tener AA incorporado. Para tener una idea de la capacidad de R si le dedica un poco de tiempo, consulte esto:

    (Haga clic en la imagen para ver el artículo que lo describe).

Con respecto a la línea de comandos de gnuplot, puede compilarla para que sea compatible con la línea de lectura de GNU, BSD libedit o, como alternativa, un esquema de edición de línea de comandos incorporado personalizado. (Esto de acuerdo con la p.20 del manual .) Tengo gnuplot 3.7 en una máquina y 4.0 en otra, y ambos están construidos con readline. ¿Se construye su binario sin ninguno de estos?

Warren Young
fuente
Comencé a usar R para todas mis estadísticas y trazar en el trabajo, ¡es genial!
jsbillings
Buena pista sobre libedit. Bueno, estoy usando el paquete predeterminado de gnuplot en Ubuntu 10.04. Parece que está vinculado contra libedit, que parece admitir al menos el modo vi. Pero la finalización de comandos es mínima (funciona solo para nombres de archivo) y no con comandos de gnuplot, es decir, es básicamente inútil (esto no es culpa de libedit).
maxschlepzig
¿Podría agregar una sesión R de ejemplo simple para generar un gráfico básico (leer el archivo (esbozado anteriormente) y emitir una función de gráfico, supongo)?
maxschlepzig