Hi monks, I am having a problem with show_values => 1, while drawing a bar graph with variables. My file is below
#!/usr/bin/perl use CGI; use CGI qw(:standard); use strict; use warnings; use GD; use GD::Graph; use GD::Graph::bars; use GD::Graph::Data; $ENV{"PATH"} = "/usr/sbin:/usr/bin:/sbin:/bin"; print "Content-type: text/html\n\n"; print "<body bgcolor=\"#95B8DB\">"; print "<br />"; print "<h1 align=center>\n"; print "Global Mail Statistics\n"; print "</h1>\n"; print "<br />"; print "<br />"; #Passed CLEAN - Clean Mails my $clean_total = qx(sudo grep -Ec 'amavis.*Passed CLEAN' /var/log/mai +llog); print "clean tatal $clean_total"; #Blocked SPAM - Spam Mails my $spam_total = qx(sudo grep -Ec 'amavis.*Blocked SPAM' /var/log/mail +log); #Blocked INFECTED - Virus Mails my $virus_total = qx(sudo grep -Ec 'amavis.*Blocked INFECTED' /var/log +/maillog); #Blocked BANNED - Banned Mails exe,scr etc. my $banned_total = qx(sudo grep -Ec 'amavis.*Blocked BANNED' /var/log/ +maillog); #BAD-HEADER- - Bad Header Mails my $badheader_total = qx(sudo grep -Ec 'amavis.*BAD-HEADER-' /var/log/ +maillog); #REJECT - REJECT Mails my $reject_total = qx(sudo grep -c 'reject' /var/log/maillog); print "<br />"; my $data = GD::Graph::Data->new([ ["Cleaned","Spam","Virus","Banned","BadHeader","Rejected"], [ $clean_total, $spam_total, $virus_total, $banned_to +tal, $badheader_total, $reject_total], ]) or die GD::Graph::Data->error; my $graph = GD::Graph::bars->new(900,400); $graph->set( x_label => 'Category', y_label => 'Count', title => 'Global Mail Statistics', # Show values on top of each bar show_values => 1, #y_max_value => 7, y_tick_number => 8, #y_label_skip => 3, #x_labels_vertical => 1, #show_values => 1, #values_vertical => 1, #values_space=> 4, bar_spacing => 10, shadow_depth => -4, shadowclr => 'dred', transparent => 0, ) or die $graph->error; $graph->set_title_font("/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf",1 +4); $graph->set_x_axis_font("/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf", +8); $graph->set_y_axis_font("/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf", +8); $graph->set_x_label_font("/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf" +,12); $graph->set_y_label_font("/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf" +,12); $graph->plot($data) or die $graph->error; my $file = 'bars.png'; open(my $out, '>', "../../../tmp/$file") or die "Cannot open '$file' f +or write: $!"; binmode $out; print $out $graph->gd->png; close $out; system("sudo /bin/cp -pf /tmp/$file /var/www/html/"); print "<img src=../$file><p>\n"; print "<br />"; print "</body>"; print "</html>\n";
Graph is drawn. But Show values don't apper in a proper way on top of each bar. This is the code where I have the issue
my $data = GD::Graph::Data->new([ ["Cleaned","Spam","Virus","Banned","BadHeader","Rejected"], [ $clean_total, $spam_total, $virus_total, $banned_to +tal, $badheader_total, $reject_total], ]) or die GD::Graph::Data->error;
If I change the variables to their actual values. Show vaules appear in proper way. this below code is OK
my @data = (['Cleaned', 'Spam', 'Virus', 'Banned', 'BadHeader', 'Rejec +ted' ], [10, 36, 0, 0, 0, 937]);
Pls help me to solve this
In reply to problem with show_values => 1, while drawing a bar graph with variables by theravadamonk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |