stas        2002/11/07 21:26:05

  Modified:    src/outstanding/stats graph.pl
  Log:
  reformat the code to read nicely, no logic change
  
  Revision  Changes    Path
  1.5       +104 -109  modperl-docs/src/outstanding/stats/graph.pl
  
  Index: graph.pl
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/stats/graph.pl,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- graph.pl  8 Nov 2002 05:11:41 -0000       1.4
  +++ graph.pl  8 Nov 2002 05:26:05 -0000       1.5
  @@ -35,13 +35,14 @@
   
   print STDERR "Processing data\n";
   
  -my @data =  read_data_from_csv("input.data")
  -        or die "Cannot read data from input.data";
  +my $input_file = "input.data";
  +my @data =  read_data_from_csv($input_file) 
  +    or die "Cannot read data from $input_file";
   
   # make the Y axis to be optimally used
   my $max_y = 0;
  -foreach (@{$data[1]},@{$data[2]}) {
  -  $max_y = $_ if $_ >  $max_y ;
  +foreach (@{$data[1]}, @{$data[2]}) {
  +    $max_y = $_ if $_ >  $max_y ;
   }
   # normalize it
   $max_y  = ( int $max_y / 1000 + 1 ) * 1000; 
  @@ -51,123 +52,117 @@
   pseudo_graph();
   
   # plot a normal graph of points with all the info as possible
  -sub normal_graph{
  -  my $my_graph = new GD::Graph::linespoints(600,400);
  +sub normal_graph {
  +    my $my_graph = new GD::Graph::linespoints(600, 400);
   
  -  $my_graph->set( 
  -              x_label => 'Months',
  -              y_label => 'Counts',
  -              title => "mod_perl usage survey (numbers are by courtesy of 
netcraft.com).",
  -              y_max_value => $max_y,
  -              y_label_skip => 1,
  -              x_label_skip => 3,
  -              x_labels_vertical => 1,
  -              x_label_position => 1/2,
  -              markers => [ 1, 7 ],
  -              marker_size => 2,
  -              transparent => 1,
  -              t_margin => 10, 
  -              b_margin => 10, 
  -              l_margin => 10, 
  -              r_margin => 10,
  -
  -              two_axes => 1,
  -              logo => 'logo.png',
  -              logo_position => 'LL',
  -             );
  -
  -  #$my_graph->set( dclrs => [ qw(green pink blue cyan) ] );
  -
  -  $my_graph->set_x_label_font(GD::gdMediumBoldFont);
  -  $my_graph->set_y_label_font(GD::gdMediumBoldFont);
  -  $my_graph->set_x_axis_font(GD::gdMediumBoldFont);
  -  $my_graph->set_y_axis_font(GD::gdMediumBoldFont);
  -  $my_graph->set_title_font(GD::gdGiantFont);
  -
  -  $my_graph->set_legend('Hostnames','Unique IP numbers' );
  -  $my_graph->set_legend_font(GD::gdMediumBoldFont);
  -
  -
  -  open IMG, '>graph.jpg' or die $!;
  -  print IMG $my_graph->plot([EMAIL PROTECTED])->jpeg(70);
  -  close IMG;
  -#  $my_graph->plot_to_gif( "graph.gif", [EMAIL PROTECTED] );
  +    $my_graph->set(
  +        x_label => 'Months',
  +        y_label => 'Counts',
  +        title => "mod_perl usage survey (numbers are by courtesy of 
netcraft.com).",
  +        y_max_value => $max_y,
  +        y_label_skip => 1,
  +        x_label_skip => 3,
  +        x_labels_vertical => 1,
  +        x_label_position => 1/2,
  +        markers => [ 1, 7 ],
  +        marker_size => 2,
  +        transparent => 1,
  +        t_margin => 10, 
  +        b_margin => 10, 
  +        l_margin => 10, 
  +        r_margin => 10,
  +
  +        two_axes => 1,
  +        logo => 'logo.png',
  +        logo_position => 'LL',
  +    );
  +
  +    #$my_graph->set( dclrs => [ qw(green pink blue cyan) ] );
  +
  +    $my_graph->set_x_label_font(GD::gdMediumBoldFont);
  +    $my_graph->set_y_label_font(GD::gdMediumBoldFont);
  +    $my_graph->set_x_axis_font(GD::gdMediumBoldFont);
  +    $my_graph->set_y_axis_font(GD::gdMediumBoldFont);
  +    $my_graph->set_title_font(GD::gdGiantFont);
  +
  +    $my_graph->set_legend('Hostnames','Unique IP numbers' );
  +    $my_graph->set_legend_font(GD::gdMediumBoldFont);
  +
  +    open IMG, '>graph.jpg' or die "Can't create graph.jpg: $!";
  +    print IMG $my_graph->plot([EMAIL PROTECTED])->jpeg(70);
  +    close IMG;
  +    #  $my_graph->plot_to_gif( "graph.gif", [EMAIL PROTECTED] );
   
   }
   
   # plot a small graph of points with as least info as possible
  -sub pseudo_graph{
  -  my $my_graph = new GD::Graph::linespoints(350,200);
  +sub pseudo_graph {
  +    my $my_graph = new GD::Graph::linespoints(350,200);
   
       # in this graph we don't want X labels to be printed
  -  for (0..$#{$data[0]}) {
  -    $data[0]->[$_] = "";
  -  }
  -
  -  $my_graph->set( 
  -              y_max_value => $max_y,
  -              y_label_skip => 0,
  -              x_label_skip => 1,
  -              x_labels_vertical => 1,
  -              x_label_position => 1/2,
  -              markers => [ 1, 7 ],
  -              marker_size => 2,
  -              transparent => 1,
  -              t_margin => 10, 
  -              b_margin => 10, 
  -              l_margin => 10, 
  -              r_margin => 10,
  -              two_axes => 0,
  -
  -              logo => 'logo-middle.png',
  -              logo_position => 'UL',
  -             );
  -
  -  #$my_graph->set( dclrs => [ qw(green pink blue cyan) ] );
  -
  -  $my_graph->set_x_label_font(GD::gdMediumBoldFont);
  -  $my_graph->set_y_label_font(GD::gdSmallFont);
  -  $my_graph->set_x_axis_font(GD::gdMediumBoldFont);
  -  $my_graph->set_y_axis_font(GD::gdSmallFont);
  -  $my_graph->set_title_font(GD::gdGiantFont);
  -
  -  $my_graph->set_legend('Hostnames','Unique IP numbers' );
  -  $my_graph->set_legend_font(GD::gdSmallFont);
  -
  -
  -  open IMG, '>pseudo-graph.jpg' or die $!;
  -  print IMG $my_graph->plot([EMAIL PROTECTED])->jpeg(70);
  -  close IMG;
  -  #$my_graph->plot_to_gif( "pseudo-graph.gif", [EMAIL PROTECTED] );
  -
  +    for (0..$#{$data[0]}) {
  +        $data[0]->[$_] = "";
  +    }
  +
  +    $my_graph->set(
  +        y_max_value => $max_y,
  +        y_label_skip => 0,
  +        x_label_skip => 1,
  +        x_labels_vertical => 1,
  +        x_label_position => 1/2,
  +        markers => [ 1, 7 ],
  +        marker_size => 2,
  +        transparent => 1,
  +        t_margin => 10, 
  +        b_margin => 10, 
  +        l_margin => 10, 
  +        r_margin => 10,
  +        two_axes => 0,
  +
  +        logo => 'logo-middle.png',
  +        logo_position => 'UL',
  +    );
  +
  +    #$my_graph->set( dclrs => [ qw(green pink blue cyan) ] );
  +
  +    $my_graph->set_x_label_font(GD::gdMediumBoldFont);
  +    $my_graph->set_y_label_font(GD::gdSmallFont);
  +    $my_graph->set_x_axis_font(GD::gdMediumBoldFont);
  +    $my_graph->set_y_axis_font(GD::gdSmallFont);
  +    $my_graph->set_title_font(GD::gdGiantFont);
  +
  +    $my_graph->set_legend('Hostnames','Unique IP numbers' );
  +    $my_graph->set_legend_font(GD::gdSmallFont);
  +
  +    open IMG, '>pseudo-graph.jpg' or die "Can't create pseudo-graph.jpg: $!";
  +    print IMG $my_graph->plot([EMAIL PROTECTED])->jpeg(70);
  +    close IMG;
  +    #$my_graph->plot_to_gif( "pseudo-graph.gif", [EMAIL PROTECTED] );
   
   }
   
  -sub read_data_from_csv
  -{
  -        my $fn = shift;
  -        my @d = ();
  -
  -        open(ZZZ, $fn) || return ();
  -
  -        while (<ZZZ>)
  -        {
  -                chomp;
  -
  -                next if /^#/;
  -
  -                # you might want Text::CSV here
  -                my @row = split /\t/;
  -
  -                for (my $i = 0; $i <= $#row; $i++)
  -                {
  -                        undef $row[$i] if ($row[$i] eq 'undef');
  -                        unshift @{$d[$i]}, $row[$i];
  -                }
  +sub read_data_from_csv {
  +    my $fn = shift;
  +    my @d = ();
  +
  +    open ZZZ, $fn or return ();
  +
  +    while (<ZZZ>) {
  +        chomp;
  +
  +        next if /^#/;
  +
  +        # you might want Text::CSV here
  +        my @row = split /\t/;
  +
  +        for (my $i = 0; $i <= $#row; $i++) {
  +            undef $row[$i] if $row[$i] eq 'undef';
  +            unshift @{$d[$i]}, $row[$i];
           }
  +    }
   
  -        close (ZZZ);
  +    close ZZZ;
   
  -        return @d;
  +    return @d;
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to