#!/usr/bin/perl use strict; use Data::Dumper; use SVG::Graph; use SVG::Graph::Data; use SVG::Graph::Data::Datum; my $graph = SVG::Graph->new( width => 800, height => 800, margin => 30 ); my $frame0 = $graph->add_frame; $frame0->stack(1); my $frame1 = $frame0->add_frame; my $frame2 = $frame0->add_frame; my $frame3 = $frame0->add_frame; my $frame4 = $frame0->add_frame; my @d1 = (); my @d2 = (); my @d3 = (); my @d4 = (); for ( 1 .. 10 ) { push @d1, SVG::Graph::Data::Datum->new( x => $_, y => int( rand(10) ) ); } for ( 1 .. 10 ) { push @d2, SVG::Graph::Data::Datum->new( x => $_, y => int( rand(10) ) ); } for ( 1 .. 10 ) { push @d3, SVG::Graph::Data::Datum->new( x => $_, y => int( rand(10) ) ); } for ( 1 .. 10 ) { push @d4, SVG::Graph::Data::Datum->new( x => $_, y => int( rand(10) ) ); } my $data1 = SVG::Graph::Data->new( data => \@d1 ); my $data2 = SVG::Graph::Data->new( data => \@d2 ); my $data3 = SVG::Graph::Data->new( data => \@d3 ); my $data4 = SVG::Graph::Data->new( data => \@d4 ); $frame1->add_data($data1); $frame2->add_data($data2); $frame3->add_data($data3); $frame4->add_data($data4); $frame0->add_glyph( 'axis', x_absolute_ticks => 1, 'stroke' => 'black', 'stroke-width' => 2 ); $frame1->add_glyph( 'bar', 'fill' => 'red', 'fill-opacity' => 0.5, stroke => 'red' ); $frame2->add_glyph( 'bar', 'fill' => 'blue', 'fill-opacity' => 0.5, stroke => 'blue' ); $frame3->add_glyph( 'bar', 'fill' => 'yellow', 'fill-opacity' => 0.5, stroke => 'yellow' ); $frame4->add_glyph( 'bar', 'fill' => 'green', 'fill-opacity' => 0.5, stroke => 'green' ); print $graph->draw;