Qual é a maneira mais fácil de visualizar dados do stdout como um gráfico?

8

Eu tenho um aplicativo que imprime dados em stdout, um número de ponto flutuante aproximadamente a cada segundo. Eu gostaria de visualizar os números como um gráfico.

Qual é a maneira mais fácil de fazer isso? De preferência, estou procurando algo que possa fazer na linha de comando e, idealmente, sem fazer nenhuma programação ou script.

Mads Skjern
fonte

Respostas:

10

Eu gosto de terímetro com muitas opções e recursos padrão.

O termômetro pode visualizar dados no terminal. Os dados podem ser transmitidos por canal ou arquivo.

 seq 100 | awk 'BEGIN{OFS="\t"; print "x","sin(x)","cos(x)"}{x=$1/10; print x,sin(x),cos(x)}' | termeter

insira a descrição da imagem aqui

719016
fonte
2

Você pode usar gnuplot:

gnuplot -e 'set terminal png; plot "input.txt" with lines' > graph.png

Você pode até canalizar a entrada para ele, basta alterar o nome do arquivo para -:

tail input.txt | gnuplot -e 'set terminal png; plot "-" with lines' > graph.png
choroba
fonte
4
E se eu não quiser salvá-lo como PNG, mas mostrá-lo "ao vivo" conforme ele muda? Isso é possível?
Mads Skjern
2

Eu nunca o usei, mas existe o Spark . Parece o que você quer.

Ross
fonte
Uau, isso é realmente interessante e impressionante :) No entanto, preciso de uma GUI ou um pouco maior para poder ler a trama em mais detalhes.
Mads Skjern
2

Como seus dados estão sendo gravados no stdout. Você pode redirecioná-lo para um script usando pipe. O script, por sua vez, plotaria os dados. Para dar um exemplo simples: Aqui está um pequeno tutorial que escrevi para fazer exatamente isso: link .

Este exemplo mostra como plotar dados 1D da mesma forma que você (séries temporais de números de ponto flutuante).

your_script | python plot_script.py -t 1000

1000 sendo a história para manter

Espero que ajude.

quartzfun
fonte
Boa resposta ! Nossa comunidade melhora com as contribuições de pessoas como você. POR FAVOR, continue analisando outras perguntas que possam se beneficiar do seu conhecimento!
123456789123456789123456789