#!/usr/bin/perl
#
# The LearningOnline Network with CAPA
#
# Behrouz Minaei
# 9/13/2001, 9/25/2001
# 10/6/2001, 10,9,2001
#
# A CGI script that dynamically outputs a graphical chart for lonstatistics.
use strict;
use GD::Graph::bars;
use GD::Graph::colour;
use GD::Graph::Data;
my ($cid, $Tag, $Max, $PNo, $data) = split(/&/,$ENV{'QUERY_STRING'});
my @data1=split(/\,/,$data);
my @xlabels;
for (my $nIdx=0; $nIdx<$PNo; $nIdx++ ) {
$xlabels[$nIdx]=$nIdx+1;
}
my @data =(\@xlabels,\@data1);
#print "Content-type: text/html\n\n";
#print $ENV{'QUERY_STRING';
#print "
";
#print $Max;
#print "
";
#print $PNo;
#print "
";
#print $data;
#exit;
my $Range;
if ( $PNo > 10 ) {$Range = 30*$PNo;}
else { $Range = 300+30*$PNo; }
if ( $Max < 1 ) { $Max = 1; }
elsif ( $Max < 10 ) { $Max = 10; }
elsif ( $Max < 100 ) { $Max = 100; }
my $MyGraph = GD::Graph::bars->new($Range, 400);
$MyGraph->set(
x_label => 'Problems #',
y_label => $Tag,
title => 'LON-CAPA Graphical Chart, Course: '.$cid,
y_max_value => $Max,
y_tick_number => 10,
y_label_skip => 1,
x_label_skip => 2,
# colors
dclrs => [ qw(green lblue lyellow lpurple cyan lorange)],
# shadows
bar_spacing => 4,
shadow_depth => 1,
shadowclr => 'dred',
transparent => 0,
) or warn $MyGraph->error;
# Tell the server we are sending a gif graphic
print <plot(\@data)->png;
undef $MyGraph;
binmode(STDOUT);
open IMG,"|pngtopnm|ppmtogif"; # convert into a gif image
print IMG $BinaryData; # output image
$|=1; # be sure to flush before closing
close IMG;