Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Graph displaying reputation of all your nodes

by tomhukins (Curate)
on Oct 22, 2001 at 18:56 UTC ( [id://120545]=sourcecode: print w/replies, xml ) Need Help??
Category: PerlMonks Related Scripts
Author/Contact Info Tom Hukins (tomhukins) <tom@eborcom.com>
Description: Converts output from quickrep.pl into a PNG bar chart to show how many of your nodes have a given reputation.
#!/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;
}
Replies are listed 'Best First'.
Re: Graph displaying reputation of all your nodes
by patgas (Friar) on Oct 23, 2001 at 00:05 UTC

    I'm honored someone would build onto my little script... especially with something as cool as this. ++!

    "We're experiencing some Godzilla-related turbulence..."

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://120545]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (9)
As of 2024-03-28 12:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found