Next: Writing scripts, Previous: Statistics, Up: Top [Contents]
You can plot the results in the format produced by mu:tabulate with the
(mu plot) module, an experimental module that requires the
gnuplot9 program to be installed
on your system.
The mu:plot-histogram procedure takes the following arguments:
(mu:plot-histogram <data> <title> <x-label> <y-label> [<want-ascii>])
Here, <data> is a table of data in the format that mu:tabulate
produces. <title>, <x-label> and <y-lablel> are,
respectively, the title of the graph, and the labels for X- and
Y-axis. Finally, if you pass #t for the final <want-ascii>
parameter, a plain-text rendering of the graph will be produced; otherwise, a
graphical window will be shown.
An example should clarify how this works in practice; let’s plot the number of message per hour:
#!/bin/sh
exec guile -s $0 $ !#
(use-modules (mu) (mu stats) (mu plot))
(mu:initialize)
(define (mail-per-hour-table)
(sort
(mu:tabulate
(lambda (msg)
(tm:hour (localtime (mu:date msg)))))
(lambda (x y) (< (car x) (car y)))))
(mu:plot-histogram (mail-per-hour-table) "Mail per hour" "Hour" "Frequency")
Mail per hour
Frequency
1200 ++--+--+--+--+-+--+--+--+--+-+--+--+--+-+--+--+--+--+-+--+--+--+--++
|+ + + + + + + "/tmp/fileHz7D2u" using 2:xticlabels(1) ********
1100 ++ *** +*
**** * * *
1000 *+ * **** * +*
* * ****** **** * ** * *
900 *+ * * ** **** * **** ** * +*
* * * ** * * ********* * ** ** * *
800 *+ * **** ** * * * * ** * * ** ** * +*
700 *+ *** **** * ** * * * * ** **** * ** ** * +*
* * * **** * * ** * * * * ** * **** ** ** * *
600 *+ * **** * * * * ** * * * * ** * * * ** ** * +*
* * ** * * * * * ** * * * * ** * * * ** ** * *
500 *+ * ** * * * * * ** * * * * ** * * * ** ** * +*
* * ** **** *** * * * ** * * * * ** * * * ** ** * *
400 *+ * ** ** **** * * * * * ** * * * * ** * * * ** ** * +*
*+ *+**+**+* +*******+* +* +*+ *+**+* +*+ *+ *+**+* +*+ *+**+**+* +*
300 ********************************************************************
0 1 2 3 4 5 6 7 8 910 11 12 1314 15 16 17 1819 20 21 22 23
Hour
|