Next: , Previous: Statistics, Up: Top   [Contents]


7 Plotting data

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

Footnotes

(9)

http://www.gnuplot.info/