GD::Graph Bar Chart列值

问题描述 投票:2回答:1

我使用的是 GD::Graph 模块。 我需要在图表上的每一列上面写出该列对应的数值。 我应该怎么做?

#!/usr/bin/perl
use strict;
use warnings;

use CGI;
use CGI::Carp qw(fatalsToBrowser);
use GD::Graph::bars3d;

sub stringToDec {
    my $ustring = '';
    for my $char (split //, shift){
        if(ord($char)>127){
            $ustring .= "&#" . (unpack("U", $char)+848) . ";";
        } else {
            $ustring .= $char;
        }   
    }
    return $ustring;
}

my @time    = ('00:00', '03:00', '06:00', '09:00', '12:00', '15:00'); 
my @site1   = (    80 ,     30 ,     15 ,     40 ,    250 ,    340 );

my @data = (\@time, \@site1);

my $graph = GD::Graph::bars3d->new(800, 300);

$graph->set_title_font('arial.ttf', 9);
$graph->set_y_label_font('arial.ttf', 9);
$graph->set_legend_font('arial.ttf', 9);

$graph->set(
    y_label     => 'Кол-во',
    title       => 'Кол-во подключенных по месяцам',
    dclrs       => [ ('green', 'blue') ],
    bar_spacing => 15,
) or warn $graph->error;

$graph->set_legend('LAN', 'Ч.сектор');
my $image = $graph->plot(\@data) or die $graph->error;

print "Content-type: image/png\n\n";
print $image->png;

enter image description here

perl gd-graph
1个回答
1
投票

GD::Graph

用数据点绘制数据点的数值。

有时,您会希望在数据点上方绘制数据点或条形图的值,以使其清晰明了。GD::Graph 允许您以通用的方式控制这一点,甚至可以控制到单个点。

显示值

将此设置为1,以在点或条形图本身上方显示每个数据点的值。不努力确保有足够的空间来显示文本。

$graph->set(show_values => 1);

bar plot

© www.soinside.com 2019 - 2024. All rights reserved.