#!/usr/bin/perl # # See http://dannyman.toldme.com/2009/05/04/2008-tech-ppe/ open DATA, "data.txt" or die; ; #print; open OUT, ">ppe.txt" or die; while( ) { ($company, $profit, $employees) = split; $profit = $profit * 1000000000; $ppe = $profit / $employees; printf OUT "%.02f %s\n", $ppe, $company; } close DATA; open DATA, "sort -n ppe.txt |" or die; while( ) { ($ppe, $company) = split; push @companies, $company; push @ppes, $ppe; } use GD::Graph::hbars; $data[0] = [ @companies ]; $data[1] = [ @ppes ]; my $mygraph = GD::Graph::hbars->new(580, 300); $mygraph->set( y_label => 'Profit per Employee (2008)', x_label => 'Company', title => 'Tech Company Profit-per-Employee', ) or warn $mygraph->error; my $myimage = $mygraph->plot(\@data) or die $mygraph->error; open( CHART, ">ppe.png" ) or die "open: $!\n"; binmode CHART; print CHART $myimage->png; close CHART;