Como visualizar dados de séries temporais?

7

Eu tenho alguns dados de séries temporais que quero visualizar como 2d plot.

A entrada é formato de data ISO e valor separado por espaço, um registro por linha:

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

A saída deve ser um belo gráfico 2D. Requisitos básicos:

  • saída para uma janela do X11 (como visualização) e para um arquivo png
  • O eixo x
  • precisa entender as datas e dimensionar naturalmente os dados, por exemplo um intervalo entre 3 dias deve ser três vezes maior que um intervalo entre 1 dia
  • deve ser chamado de um script
  • saída legal e conveniente de usar

Bônus:

  • saída de svg

Eu tentei gnuplot e funciona - há suporte para data:

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

Mas eu tenho alguns problemas com o gnuplot:

  • com gráficos de configurações padrão muito feios
  • é difícil encontrar informações no manual, por exemplo ao traçar pontos, como uso pequenos círculos preenchidos em vez do padrão "+"?
  • o shell do gnuplot é uma dor no pescoço - ele não usa readline, está quebrado, a conclusão do comando é uma piada, eu não sei como ativar atalhos do vi - ou se eles são suportados, o que acontece com a pesquisa reversa? etc.

Assim, minha pergunta: Quais são as alternativas para visualizar dados de séries temporais?

Ou estou exagerando os problemas do gnuplot?

    
por maxschlepzig 29.01.2011 / 01:14

2 respostas

5

O objetivo da existência da RRDTool é traçar dados de séries temporais, mas é basicamente destinado a dados automatizados. gráficos e pode não ser o melhor ajuste para suas necessidades.

Isso disse:

  • Pode produzir em PNG ou SVG, mas não tem funcionalidade de pré-visualização.
  • A escala de tempo está incorporada.
  • Script facilmente (acesso à linha de comando ou bibliotecas em muitas linguagens de script).
  • A saída pode ser feita para parecer bem decente .

    
por 29.01.2011 / 03:54
11

R é melhor nesse tipo de coisa que o Gnuplot porque:

  1. É um ambiente de programação completo, com APIs de extensão compatíveis com o Fortran . Se o seu computador pode fazer alguma coisa, você pode fazer isso com o R.

  2. Muitos já contribuíram com suas soluções para problemas comuns no CRAN : Rede Abrangente de Arquivos R. Você pode encontrar os zoo e ggplot2 são úteis para esta tarefa.

  3. Existem muitos livros em análise de séries temporais e R em general .

R tem tudo o que você pediu:

  • Saídas para X11, PNG ou (com um add-on ) SVG

  • Círculos preenchidos para pontos de plotagem: passar pch=19 ou pch=20 para par () ou pontos () . Existem muitos outros símbolos de ponto de plotagem pré-definidos, além de todos os Unicode, se você estiver usando uma fonte com suporte a Unicode.

  • Gráficos com reconhecimento de tempo: se os internos não tiverem a escala desejada, você poderá criar qualquer coisa que precisar com as primitivas de plotagem de R

  • Pode ser chamado a partir de um script: use uma linha #!/usr/bin/Rscript shebang no seu arquivo de programa R

  • Agradável e conveniente: Existem interfaces GUI, se você gosta, e se você não gosta, o ambiente padrão comandado por comandos tem muitos recursos legais, como a capacidade de ver o código fonte de R muitas operações internas, o que ajuda a aprender como o sistema é montado. (Sim, muito de R está escrito em R!)

  • Lindos gráficos: o Antialiasing é o padrão se o R for construído contra o Cairo, o que será feito se for uma compilação recente no Linux. Versões antigas de R podem não ter AA embutidas. Para ter uma idéia da capacidade de R se você colocar um pouco de tempo, confira:

    (Clique na imagem para artigo descrevendo-a.)

Em relação à linha de comando do gnuplot, você pode construí-lo para suportar readline GNU, libedit BSD ou como um esquema de edição de linha de comando interno customizado. (Isto de acordo com p.20 de o manual .) Eu tenho o gnuplot 3.7 em uma máquina e 4.0 na outro, e ambos são construídos com readline. O seu binário é construído sem nada disso?

    
por 29.01.2011 / 01:55