1use strict; 2use GD::Graph::bars; 3use GD::Graph::hbars; 4use GD::Graph::Data; 5require 'save.pl'; 6 7$GD::Graph::Error::Debug = 5; 8 9my $data = GD::Graph::Data->new( 10[ 11 ["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"], 12 [ 50000, 120000, 240000, 330000, 190000, 80000, 60000, 150000, 210000], 13 [1033101,2200100,5300300,6400400,3192192,1600600, 900900,3333333,4444444], 14] 15) or die GD::Graph::Data->error; 16 17my $values = $data->copy(); 18$values->set_y(1, 7, undef) or warn $data->error; 19$values->set_y(2, 7, undef) or warn $data->error; 20 21my @names = qw/sample19 sample19-h/; 22 23my $path = $ENV{GDGRAPH_SAMPLES_PATH} ? $ENV{GDGRAPH_SAMPLES_PATH} : ''; 24 25for my $my_graph (GD::Graph::bars->new(600,400), 26 GD::Graph::hbars->new(600,400)) 27{ 28 my $name = shift @names; 29 print STDERR "Processing $name\n"; 30 31 $my_graph->set( 32 x_label => 'Date', 33 y1_label => 'Hits', 34 y2_label => 'Megabytes', 35 title => 'Using two axes with different formats', 36 #y1_max_value => 40, 37 #y2_max_value => 8, 38 y_tick_number => 8, 39 y_label_skip => 2, 40 #y_number_format => '%d', ### <-- this will override y{1,2}_number_format 41 y1_number_format => sub { # from perlfaq5 42 local $_ = shift; 43 1 while s/^([-+]?\d+)(\d{3})/$1,$2/; 44 $_; 45 }, 46 y2_number_format => sub { my $v = shift; sprintf("%.2f",$v/1024) }, 47 long_ticks => 1, 48 two_axes => 1, 49 legend_placement => 'RT', 50 x_label_position => 1/2, 51 52 bgclr => 'white', 53 fgclr => 'white', 54 boxclr => 'dblue', 55 accentclr => 'dblue', 56 valuesclr => '#ffff77', 57 dclrs => [qw(lgreen lred)], 58 59 bar_spacing => 1, 60 61 logo => "${path}logo." . GD::Graph->export_format, 62 logo_position => 'BR', 63 64 transparent => 0, 65 66 l_margin => 10, 67 b_margin => 10, 68 r_margin => 10, 69 t_margin => 10, 70 71 show_values => 1, 72 values_format => "%4.1f", 73 74 ) or warn $my_graph->error; 75 76 if ($name =~ /-h$/) 77 { 78 $my_graph->set(x_labels_vertical => 0, values_vertical => 0); 79 $my_graph->set_legend('bottom axis', 'top axis'); 80 } 81 else 82 { 83 $my_graph->set(x_labels_vertical => 1, values_vertical => 1); 84 $my_graph->set_legend('left axis', 'right axis'); 85 } 86 87 my $font_spec = "../Dustismo_Sans"; 88 89 $my_graph->set_y_label_font($font_spec, 12); 90 $my_graph->set_x_label_font($font_spec, 12); 91 $my_graph->set_y_axis_font($font_spec, 10); 92 $my_graph->set_x_axis_font($font_spec, 10); 93 $my_graph->set_title_font($font_spec, 18); 94 $my_graph->set_legend_font($font_spec, 8); 95 $my_graph->set_values_font($font_spec, 8); 96 97 $my_graph->plot($data) or die $my_graph->error; 98 save_chart($my_graph, $name); 99} 100 1011; 102