#!/usr/bin/perl -Tw # quickrep-graph.pl # # Converts output from quickrep.pl # <http://perlmonks.org/index.pl?node_id=111464> into a PNG bar chart +to # show how many of your nodes have a given reputation # # Tom Hukins <tom@eborcom.com> (tomhukins on Perl Monks) - 20011022 # # This program is free software; you can redistribute it and/or modify # it under the same terms as Perl itself use strict; use GD::Graph::bars (); use XML::Simple qw(XMLin); { # Allow the user to specify an alternative output filename on the # command line my $output_filename = shift || 'quickrep.png'; my($ratings, $username) = &derive_stats(); &draw_graph($ratings, $username, $output_filename); } sub derive_stats { my $xml = XMLin('./quickrep.xml') or die "$!"; my $username = $xml->{INFO}{foruser}; my @ratings; # Counts the number of nodes with a given rating while (my($id, $node) = each %{ $xml->{NODE} }) { @ratings[ $node->{reputation} ]++; } my $max_reputation = scalar(@ratings) - 1; return([ [0..$max_reputation], [@ratings] ], $username); } sub draw_graph { my($ratings, $username, $output_filename) = @_; my $graph = new GD::Graph::bars( 600, 400 ); $graph->set( x_label => 'Reputation', y_label => 'Number of Nodes', title => "PerlMonks Nodes by Reputation for $username" ) or die "$!"; my $gd = $graph->plot( $ratings ); open(IMG, ">$output_filename") or die "$!"; binmode IMG; print IMG $gd->png; close IMG; }
In reply to Graph displaying reputation of all your nodes by tomhukins
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |