Las primeras mejoras que apliqué fueron todas visuales:
Tamaño de la imagen:
set terminal png size 1024, 768
Margenes:
set lmargin 5
set bmargin 5
set rmargin 16
Títulos:
set title "Orgmode Task by Day" font "Inconsolata,10"
Formato fechas y horas:
set format y "%H:%M"
set format x "%d/%m/%Y" font "Inconsolata,8"
Rango horario eje y:
set yrange ["00:01":"23:59"]
Etiquetas de las series de datos::
set key outside font "Inconsolata,10"
Etiquetas de los ejes:
set xtics 60*60*24*7 font "Inconsolata,8" nomirror rotate by right at 0.5,0
set ytics font "Inconsolata,8" nomirror
set mytics
unset mxtics
set autoscale x
Aunque la principal mejora fue reemplazar las líneas para cada serie
de datos por una función que calcula el todal de series contando el
total de archivos *.org e iterando por todas las series en una
sóla línea de código::
f=`ls ~/org/*.org | wc -l`
plot for [i=2:f:2] data u 1:i:(0):(column(i+1)*60) with vec lw 2 nohead ti col(i)
Con todos estos cambios aplicados el gráfico mejora notablemente:
El código completo de gnuplot es el siguiente:
#+begin_src gnuplot :var data='org-task-by-day.dat' :file org-task-by-day.png
reset
set terminal png size 1024, 768
set lmargin 5
set bmargin 5
set rmargin 16
set title "Orgmode Task by Day" font "Inconsolata,10"
set xdata time
set ydata time
set timefmt x "%Y-%m-%d"
set timefmt y "%H:%M"
set format y "%H:%M"
set format x "%d/%m/%Y" font "Inconsolata,8"
set yrange ["00:01":"23:59"]
set key outside font "Inconsolata,10"
set xtics 60*60*24*7 font "Inconsolata,8" nomirror rotate by right at 0.5,0
set ytics font "Inconsolata,8" nomirror
set mytics
unset mxtics
set autoscale x
f=`ls ~/org/*.org | wc -l`
plot for [i=2:f:2] data u 1:i:(0):(column(i+1)*60) with vec lw 2 nohead ti col(i)
#+end_src
#+results:
[[file:org-task-by-day.png]]
Está disponible un archivo plot.org con el código completo:
Graficando un año completo
Como mencioné anteriormente, org-babel es muy flexible permitiendo
modificar el código y presionando C-c C-c se obtienen resultados
en segundos, asi que bastó con reemplazar las líneas:
YEAR=$(date +%Y)
...
DAYS=$(egrep -ho "CLOCK:(.*)$YEAR-$MONTH-[0-9]{2}" *.org | \
por:
YEAR=2011
DAYS=$(egrep -ho "CLOCK:(.*)$YEAR-[0-9]{2}-[0-9]{2}" *.org | \
Y obtuve un gráfico de todo el 2010:
Comparando el 2011, veo que soy un adicto a org-mode: