Como visualizar dados de séries temporais?

8

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

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

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

A saída deve ser uma bela plotagem 2D. Requisitos básicos:

  • saída para uma janela 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 agradável e fácil de usar

Bônus:

  • saída svg

Eu tentei gnuplote funciona - ele tem algum suporte de 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 configurações padrão, os gráficos parecem muito feios
  • é difícil encontrar coisas no manual - por exemplo, ao plotar pontos, como uso pequenos círculos preenchidos em vez do sinal '+' padrão?
  • o shell gnuplot é uma dor de cabeça - ele não usa linha de leitura, está quebrado, a conclusão do comando é uma piada, não sei como ativar os 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?

maxschlepzig
fonte

Respostas:

5

RRDTool todo o propósito de de existência está tramando dados de séries temporais, mas que está destinado principalmente para gráficos automatizado e pode não ser o mais adequado para suas necessidades.

Dito isto:

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

Gráfico RRDTool

Kowh
fonte
Parece interessante, a falta de pré-visualização não é tão ruim assim - basta gerar um png e usar um visualizador de imagens lado a lado. Você poderia dar um exemplo de chamada de linha de comando simples dessa ferramenta?
#
Basicamente, você executa rrdtool create ...uma vez para configurar o RRD db, rrdtool update ...uma vez por parte dos dados e rrdtool graph ...para gerar um gráfico.
Kowh
12

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 C e Fortran . Se o seu computador pode fazer algo, você pode fazê-lo com R.

  2. Muitos já contribuíram com suas soluções para problemas comuns para a CRAN : Rede Compreensiva de Arquivamentos R. Você pode achar os pacotes zooe ggplot2úteis para esta tarefa.

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

R tem tudo o que você pediu:

  • Saídas para X11, PNG ou (com um complemento ) SVG

  • Círculos preenchidos para pontos de plotagem: passe pch=19ou pch=20para o par () ou pontos () . Existem muitos outros símbolos de pontos de plotagem predefinidos, além de todo o Unicode, se você estiver usando uma fonte com suporte a Unicode.

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

  • Chamadas a partir de um script: use uma #!/usr/bin/Rscriptlinha shebang no seu arquivo de programa R

  • Agradável e conveniente: Existem front-ends da GUI, se você gosta e se não gosta, o ambiente padrão orientado a comandos possui muitos recursos interessantes, como a capacidade de ver o código-fonte R de muitas operações internas, o que ajuda para aprender como o sistema é montado. (Sim, grande parte de R está escrita em R!)

  • Tramas bonitas: Antialiasing é o padrão se o R for construído no Cairo, o que acontecerá se for uma compilação recente no Linux. As versões antigas do R podem não ter o AA embutido. Para ter uma idéia da capacidade do R, se você dedicar algum tempo, verifique isso:

    (Clique na imagem para ver o artigo que a descreve.)

Com relação à linha de comando do gnuplot, você pode construí-lo para suportar a linha de leitura GNU, o BSD libedit ou, como alternativa, um esquema de edição de linha de comando embutido personalizado. (Isso de acordo com a p.20 do manual .) Eu tenho o gnuplot 3.7 em uma máquina e 4.0 em outra, e ambos são construídos com readline. Seu binário é construído sem nada disso?

Warren Young
fonte
Comecei a usar R para todas as minhas estatísticas e plotagem no trabalho, é ótimo!
jsbillings
Boa dica sobre o libedit. Bem, estou usando o pacote gnuplot padrão no Ubuntu 10.04. Parece que está vinculado ao libedit, que parece suportar pelo menos o modo vi. Mas a conclusão do comando é mínima (funciona apenas para nomes de arquivos) e não com os comandos gnuplot, ou seja, é basicamente inútil (isso não é culpa do libedit).
precisa saber é o seguinte
Você poderia adicionar um exemplo simples de sessão R para gerar um gráfico básico (lendo o arquivo (esboçado acima) e emitir uma função de plotagem, eu acho)?
precisa saber é o seguinte