Subject: | Option to add space between groups of bars |
When working with a multiple-data-set bar graph, I find it preferable to have the groups for each X value separated by a little additional space to make it clear where one X value ends and the next begins. This is obviously too trivial a feature to ask somebody else to implement, so I did it myself, adding a new group_spacing option (analogous to bar_spacing) for GD::Graph::bars and GD::Graph::hbars. The accompanying patch changes Graph.pm (to document the option), Graph/axestype.pm, Graph/bars.pm and samples/Makefile (since I also added sample code for the new option). I hope it meets with approval.
Since I'm not sure I can attach multiple files, I'm including the new sample file (which I've called sample19.pl, because it seemed to fit there) in this message instead of as an attachment--it's basically just a slightly tweaked version of sample12.pl, in any case.
Thanks for the great modules!
--Ben Warfield
#!/usr/local/bin/perl
use strict;
use GD::Graph::bars;
use GD::Graph::hbars;
require 'save.pl';
my @data = (
["1st","2nd","3rd","4th","5th","6th","7th"],
[ 5, 12, 24, 33, 19, 18, 6],
[ 5, 11, 13, 28, 23, 13, 1],
[ 2, 8, 10, 20, 18, 21, 3],
[ 10, 20, 19, 36, 23, 19, 11],
);
my @names = qw/sample19 sample19-h/;
my @dim = (600,400);
for my $my_graph (GD::Graph::bars->new(@dim),GD::Graph::hbars->new(@dim))
{
my $name = shift @names;
print STDERR "Processing $name\n";
$my_graph->set(
x_label => 'X Label',
y_label => 'Y label',
title => 'Four data sets (with grouping space)',
y_max_value => 40,
y_tick_number => 8,
y_label_skip => 2,
bar_spacing => 2,
shadow_depth => 3,
group_spacing => 4,
accent_treshold => 200,
transparent => 0,
);
$my_graph->set_legend(qw(Harry Ron Neville Hermione));
$my_graph->plot(\@data);
save_chart($my_graph, $name);
}
Message body not shown because it is not plain text.