2

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;

ここに画像の説明を入力

4

1 に答える 1

1

GD::グラフ

データ ポイントを使用したデータ ポイント値のプロット

わかりやすくするために、データ ポイントまたはデータ ポイントの上にバーの値をプロットしたい場合があります。GD::Graph を使用すると、これを一般的な方法で、または単一の点にまで制御できます。

値を表示

ポイントまたはバー自体の上に各データ ポイントの値を表示するには、これを 1 に設定します。テキストに十分なスペースを確保するための努力は一切行われていません。

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

棒グラフ

于 2020-05-20T14:13:14.423 に答える