use strict;
use GD::Graph::bars;
use GD::Graph::hbars;
use GD::Graph::Data;
require 'save.pl';
$GD::Graph::Error::Debug = 5;
my $data = GD::Graph::Data->new(
[
["2004/2/1","2004/2/2","2004/2/3","2004/2/4","2004/2/5","2004/2/6","2004/2/7", "2004/2/8", "2004/2/9"],
[ 50000, 120000, 240000, 330000, 190000, 80000, 60000, 150000, 210000],
[1033101,2200100,5300300,6400400,3192192,1600600, 900900,3333333,4444444],
]
) or die GD::Graph::Data->error;
my $values = $data->copy();
$values->set_y(1, 7, undef) or warn $data->error;
$values->set_y(2, 7, undef) or warn $data->error;
my @names = qw/sample19 sample19-h/;
for my $my_graph (GD::Graph::bars->new(600,400),
GD::Graph::hbars->new(600,400))
{
my $name = shift @names;
print STDERR "Processing $name\n";
$my_graph->set(
x_label => 'Date',
y1_label => 'Hits',
y2_label => 'Megabytes',
title => 'Using two axes with different formats',
#y1_max_value => 40,
#y2_max_value => 8,
y_tick_number => 8,
y_label_skip => 2,
#y_number_format => '%d', ### <-- this will override y{1,2}_number_format
y1_number_format => sub { # from perlfaq5
local $_ = shift;
1 while s/^([-+]?\d+)(\d{3})/$1,$2/;
$_;
},
y2_number_format => sub { my $v = shift; sprintf("%.2f",$v/1024) },
long_ticks => 1,
two_axes => 1,
legend_placement => 'RT',
x_label_position => 1/2,
bgclr => 'white',
fgclr => 'white',
boxclr => 'dblue',
accentclr => 'dblue',
valuesclr => '#ffff77',
dclrs => [qw(lgreen lred)],
bar_spacing => 1,
logo => 'logo.' . GD::Graph->export_format,
logo_position => 'BR',
transparent => 0,
l_margin => 10,
b_margin => 10,
r_margin => 10,
t_margin => 10,
show_values => 1,
values_format => "%4.1f",
) or warn $my_graph->error;
if ($name =~ /-h$/)
{
$my_graph->set(x_labels_vertical => 0, values_vertical => 0);
$my_graph->set_legend('bottom axis', 'top axis');
}
else
{
$my_graph->set(x_labels_vertical => 1, values_vertical => 1);
$my_graph->set_legend('left axis', 'right axis');
}
my $font_spec = "../Dustismo_Sans";
$my_graph->set_y_label_font($font_spec, 12);
$my_graph->set_x_label_font($font_spec, 12);
$my_graph->set_y_axis_font($font_spec, 10);
$my_graph->set_x_axis_font($font_spec, 10);
$my_graph->set_title_font($font_spec, 18);
$my_graph->set_legend_font($font_spec, 8);
$my_graph->set_values_font($font_spec, 8);
$my_graph->plot($data) or die $my_graph->error;
save_chart($my_graph, $name);
}