■sample54.gif
【要点】
(1)折れ線グラフを描く
GD::Graph::lines;
$my_graph = new GD::Graph::lines();
(2)表示データをファイルから読み込む(データセットには、X軸目盛の値が
設定さていない例です。X軸目盛の値の自動計算。)
@data = read_data("sample54.dat") #データセット
or die "Cannot read data from sample54.dat";
・
・
・
sub read_data #ファイル(CSV)読み込みルーチン
{
・
・
・
return @d; #返す値は、無名配列であること
}
(3)Y軸の目盛を描く(No21 sample41.gif-(2)参照)
y_min_value => 0,
y_max_value => 2,
y_tick_number => 8,
y_label_skip => 4,
(4)X軸の目盛を描く
x_tick_number => 'auto', # 'auto'の場合、X軸を軸目盛の値ではなく、
#実際のX軸の値に基づいて計算された目盛の値が表示されます。
#データセットの中には、軸目盛の値は指定しません。
# 'auto'でなく数値を指定すると、データセットの目盛の値
#が目盛の表示されます。
#又、x_tick_numberを指定しないと、データセットの目盛の値
#になります。一般的にはx_tick_numberを指定しません。
x_label_skip => 2, #指定した数毎にX軸目盛の値を表示します。
(5)グラフキャンバスの軸の外枠線を線で描かない-箱状にしない
box_axis => 0, # 0:軸を箱状にしません。軸はY軸、X軸の基線
# のみが描かれます。
# 1:軸を箱状にします。軸の外枠線を線で描
# きます。デフォルトは1。
(6)軸ラベルの位置を決める
x_label_position => 1/2, # 0:左寄せ 1:右寄せ 1/2:中央揃え。
#0〜1の値で指定します。デフォルト: 3/4 。
(7)グラフキャンバスの余白を取る
r_margin => 15, #左(Left)マージン
(8)X軸ラベルの表示方法
'x_labels_vertical'=> 1, #X軸ラベルが垂直に表示されます。
#長い文字列の場合用いる。
|
|
■sample54.pl
chdir("C:\\Inetpub\\wwwroot\\uriage"); #カレントディレクトリ指定(IISの場合)
use lib 'C:/Inetpub/wwwroot/uriage'; #GD::Graphライブラリ格納フォルダ GD (固定)の場所
#
use GD::Graph::lines;
require 'save.pl';
print STDERR "Processing sample54\n";
@data = read_data("sample54.dat")
or die "Cannot read data from sample54.dat";
$my_graph = new GD::Graph::lines();
$my_graph->set(
x_label => 'Wavelength (nm)',
y_label => 'Absorbance',
title => 'Numerical X axis',
y_min_value => 0,
y_max_value => 2,
y_tick_number => 8,
y_label_skip => 4,
x_tick_number => 'auto',
x_label_skip => 2,
box_axis => 0,
line_width => 2,
x_label_position => 1/2,
r_margin => 15,
x_labels_vertical => 1,
transparent => 0,
);
$my_graph->set_legend('Thanks to Scott Prahl');
$my_graph->plot(\@data);
save_chart($my_graph, 'sample54');
sub read_data
{
my $fn = shift;
my @d = ();
open(ZZZ, $fn) || return ();
while ()
{
chomp;
my @row = split;
for (my $i = 0; $i <= $#row; $i++)
{
undef $row[$i] if ($row[$i] eq 'undef');
unshift @{$d[$i]}, $row[$i];
}
}
close (ZZZ);
return @d;
}
(参考)
●本ソースコードの1〜3行目(挿入)
1 chdir("C:\Inetpub\wwwroot\uriage"); #カレントディレクトリ指定(IISの場合)
2 use lib 'C:/Inetpub/wwwroot/uriage'; #GD::Graphライブラリ格納フォルダ GD (固定)の場所
3 #
Windows IIS 走行用に元ソースに挿入
●>save.pl(グラフ画像保存ルーチン)
●>Sample54(グラフデータファイル)
|