Como outros já apontaram, a Gnuplot é a ferramenta certa para o trabalho. Abaixo está o shell script para coletar os dados e gerar um histograma a partir dos dados com o Gnuplot:
#!/bin/sh
LOGFILE=./time.log
OUTFILE=./time-plot.png
{ /usr/bin/time -f "%e" sleep 6 ; } 2>&1 | sed "s/^/'date "+%F %H:%M:%S"'\t/g" >> "$LOGFILE"
gnuplot << EOF
set lmargin at screen 0.20
set rmargin at screen 0.85
set bmargin at screen 0.30
set tmargin at screen 0.85
set datafile separator " "
set title ""
set ylabel ""
set yrange [0:7]
set xlabel ""
set xtics rotate by 45 right
set style fill solid 1.00 noborder
set boxwidth 2 relative
set terminal png
set output "$OUTFILE"
plot "$LOGFILE" using 3:xticlabels(stringcolumn(1) . " " . stringcolumn(2)) with histogram notitle linecolor rgb 'blue'
EOF
Um exemplo de gráfico gerado para os dados de amostra fornecidos abaixo:
Observe que este exemplo usa as opções de alinhamento tic introduzidas no Gnuplot 4.6.0 para corresponder à rotação do rótulo do eixo x no diagrama de amostra. As opções de alinhamento right
, left
e center
tic não estão disponíveis no pacote Gnuplot 4.4.3 para o Ubuntu 12.04. Se a aparência precisa não for um problema, substitua set xtics rotate by 45 right
por exemplo set xtics rotate
para tornar o script compatível com a versão mais antiga do Gnuplot.