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.

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


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

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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.