■sample16-h.gif
【要点】
(1)縦棒グラフ、横棒グラフ
GD::Graph::bars; #縦棒グラフ
GD::Graph::hbars; #横棒グラフ
for my $my_graph (GD::Graph::bars->new, GD::Graph::hbars->new)
(2)Y軸目盛を描く
y_max_value => 35, #Y軸目盛の最大値
y_min_value => -15, #Y軸目盛の最小値
y_tick_number => 10, #Y軸目盛の数
y_label_skip => 2, #Y軸目盛を2つ毎に表示
overwrite => 1, # 0:違うデータセットの棒は
# 隙間無く表示(デフォルト)
# 1:互いの前に重なる
# 2:上に積み重ね(この場合
# cumulateを使用する)
dclrs => [ ( green lred ) ], #棒の色をグリーンと赤にします
axislabelclr => 'black', #軸目盛の値の色を黒とします
(3)プラス・マイナス棒(バー)の描き方
zero_axis_only => 0, # 0:デフォルト。1を読んで下さい。
# 1:Yの値が0の軸が描かれ(実際は描かれない)
# グラフの下の軸が描かれません。
# Xの値のラベルはYの値が0の軸に置かれます。
# このグラフではzero_axis_onlyは、
#省略しても良い。
(4)凡例の配置を決める
legend_placement => 'RB', #凡例をキャンバスの右(R)の下(B)に置きます。
#2つの英字の組み合 XYです。
# X:位置は、B(Bottom) または R(Right)
# Y:揃えは次のとおり。
# L(Left=左寄せ) R(Right=右寄せ)
# C(Center=中央揃え) T(Top=上詰め)
# B(Bottom=下詰め) デフォルトは、'BC' (下の中央揃え)
(5)Y軸目盛の値を編集する
y_number_format => \&y_format, # \&y_formaの&y_formatは、上の
#サブルーチンをコール。先頭に\を付けます。
(6)X軸ラベルの位置を決める
x_label_position => 1/2, # 0:左寄せ 1:右寄せ 1/2:中央揃え。
#0〜1の値で指定します。デフォルト: 3/4 。
(参考)Y軸の場合
y_label_position => 1, # 0:下詰め 1:上詰め 1/2:中央揃え。
#0〜1の値で指定します。デフォルト: 1/2 。
|
|
■sample16.pl
chdir("C:\\Inetpub\\wwwroot\\uriage"); #カレントディレクトリ指定(IISの場合)
use lib 'C:/Inetpub/wwwroot/uriage'; #GD::Graphライブラリ格納フォルダ GD (固定)の場所
#
use strict;
use GD::Graph::bars;
use GD::Graph::hbars;
require 'save.pl';
my @data = (
[ qw( 1st 2nd 3rd 4th 5th 6th 7th 8th 9th ) ],
[ 5, 12,undef, 33, 19, 8, 5, 15, 21],
[ -6, -5, -9, -8, -11, -9.3,undef, -9, -12]
);
my $refit = 4;
sub y_format
{
my $value = shift;
my $ret;
if ($value >= 0)
{
$ret = sprintf("\$%3d", $value * $refit);
}
else
{
$ret = sprintf("-\$%3d", abs($value) * $refit);
}
}
my @names = qw/sample16 sample16-h/;
for my $my_graph (GD::Graph::bars->new, GD::Graph::hbars->new)
{
my $name = shift @names;
print STDERR "Processing $name\n";
$my_graph->set(
x_label => 'Day',
y_label => 'AUD',
title => 'Credits and Debits',
y_max_value => 35,
y_min_value => -15,
y_tick_number => 10,
y_label_skip => 2,
overwrite => 1,
dclrs => [ qw( green lred ) ],
axislabelclr => 'black',
legend_placement => 'RB',
zero_axis_only => 0,
y_number_format => \&y_format,
x_label_position => 1/2,
transparent => 0,
);
$my_graph->set_legend( 'credits', 'debets' );
$my_graph->plot(\@data);
save_chart($my_graph, $name);
}
(参考)
●本ソースコードの1〜3行目(挿入)
1 chdir("C:\Inetpub\wwwroot\uriage"); #カレントディレクトリ指定(IISの場合)
2 use lib 'C:/Inetpub/wwwroot/uriage'; #GD::Graphライブラリ格納フォルダ GD (固定)の場所
3 #
Windows IIS 走行用に元ソースに挿入
●>save.pl(グラフ画像保存ルーチン)
|