SVGGraph - Perl extension for creating SVG Graphs / Diagrams / Charts / Plots.
use SVGGraph; my @a = (1, 2, 3, 4); my @b = (3, 4, 3.5, 6.33); print "Content-type: image/svg-xml\n\n"; my $SVGGraph = new SVGGraph; print SVGGraph->CreateGraph( {'title' => 'Financial Results Q1 2002'}, [\@a, \@b, 'Staplers', 'red'] );
This module converts sets of arrays with coordinates into graphs, much like GNUplot would. It creates the graphs in the SVG (Scalable Vector Graphics) format. It has two styles, verticalbars and spline. It is designed to be light-weight. If your internet browser cannot display SVG, try downloading a plugin at adobe.com.
For examples see: http://pearlshed.nl/svggraph/1.png and http://pearlshed.nl/svggraph/2.png Long code example: #!/usr/bin/perl -w -I. use strict; use SVGGraph; ### Array with x-values my @a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); ### Arrays with y-values my @b = (-5, 2, 1, 5, 8, 8, 9, 5, 4, 10, 2, 1, 5, 8, 8, 9, 5, 4, 10, 5); my @c = (6, -4, 2, 1, 5, 8, 8, 9, 5, 4, 10, 2, 1, 5, 8, 8, 9, 5, 4, 10); my @d = (1, 2, 3, 4, 9, 8, 7, 6, 5, 12, 30, 23, 12, 17, 13, 23, 12, 10, 20, 11); my @e = (3, 1, 2, -3, -4, -9, -8, -7, 6, 5, 12, 30, 23, 12, 17, 13, 23, 12, 10, 20); ### Initialise my $SVGGraph = new SVGGraph; ### Print the elusive content-type so the browser knows what mime type to expect print "Content-type: image/svg-xml\n\n"; ### Print the graph print $SVGGraph->CreateGraph( { 'graphtype' => 'verticalbars', ### verticalbars or spline 'imageheight' => 300, ### The total height of the whole svg image 'barwidth' => 8, ### Width of the bar or dot in pixels 'horiunitdistance' => 20, ### This is the distance in pixels between 1 x-unit 'title' => 'Financial Results Q1 2002', 'titlestyle' => 'font-size:24;fill:#FF0000;', 'xlabel' => 'Week', 'xlabelstyle' => 'font-size:16;fill:darkblue', 'ylabel' => 'Revenue (x1000 USD)', 'ylabelstyle' => 'font-size:16;fill:brown', 'legendoffset' => '10, 10' ### In pixels from top left corner }, [\@a, \@b, 'Bananas', '#FF0000'], [\@a, \@c, 'Apples', '#006699'], [\@a, \@d, 'Strawberries', '#FF9933'], [\@a, \@e, 'Melons', 'green'] );
Teun van Eijsden, teun@chello.nl
http://perldoc.com/ For SVG styling: http://www.w3.org/TR/SVG/styling.html
To install SVGGraph, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SVGGraph
CPAN shell
perl -MCPAN -e shell install SVGGraph
For more information on module installation, please visit the detailed CPAN module installation guide.