-
Crie um dump do seu arquivo binário em um formato adequado para o gnuplot. Por conveniência, usei
hexdump
com um formato de saída personalizado, que precisamos armazenar em um arquivo, por exemplo, comognuplot.hdp
(em princípio, a string de formatação pode ser passada por meio de uma opção de linha de comando, mas então vamos nos deparar com muitas citações aninhadas no script do gnuplot):$ cat gnuplot.hdp 3/1 "%03d " "\n" $ hexdump -f gnuplot.hdp random.data | head -n 4 236 027 076 070 243 055 047 115 211 184 206 073
-
Plote os dados com o gnuplot. No caso mais simples, plotamos os bytes
1, 2, 3
e4, 5, 6
etc. comox, y, z
coordinates:set parametric unset border unset xtics unset ytics unset ztics splot "< hexdump -f gnuplot.hdp random.data" using ($1):($2):($3) notitle
Um arquivo com números aleatórios mostra - não surpreendentemente - um gráfico de dispersão aleatório:
Masseusarmos,e.umarquivomalcompactado,comoumbitmapsimples,vemosumaestrutura(aquiéumalinha):
-
Se quisermos nos assemelhar um pouco melhor ao enredo no artigo citado, precisamos do formato
6/1 "%03d " "\n"
ashexdump
, para obtermos seis bytes por linha. E nós temos que estender o comandosplot
no gnuplot:splot "< hexdump -f gnuplot.hdp random.data" u ($1-$2):($2-$3):($3-$4) ls 1 not, '' u ($2-$3):($3-$4):($4-$5) ls 1 not, '' u ($3-$4):($4-$5):($5-$6) ls 1 not
gnuplot
tratau
como uma abreviação deusing
enot
denotitle
para manter as coisas pequenas.Para o bitmap, obtemos agora um objeto bonito;
osdadosaleatóriossãoassim:
-
Esteja ciente de que analisamos os dados em blocos de 6 bytes, ou seja, se apenas o 6º e o 7º byte (ou múltiplos deles) estiverem correlacionados, os gráficos não revelarão isso.
-
gnuplot
deve manipular facilmente um arquivo de entrada de 10 MB, mas especialmente a rotação pode ficar lenta - dependendo do seu poder de computação.