dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

perl の GD::Graph で Y 軸の目盛りを消す方法

2006-12-10 00:22:56 | perl
perl の GD::Graph モジュールを使って、グラフ描画 CGI を作成してみました。


use GD::Graph;

# 座標 (1, 10), (2, 5), (3, 7), (4, 3), (5, 4)
my @adata = (
['1', undef, '3', undef, '5'], # X 座標(値を表示しない場合は undef)
[ 10, 5, 7, 3, 4] # Y 座標
);

# 折れ線グラフ 幅600 x 高400
my $graph = new GD::Graph::lines(600, 400);

# 各種パラメータの設定
$graph->set(
title => undef, # グラフタイトル
x_label => undef, # X 軸ラベル
y_label => undef, # Y 軸ラベル
y_min_value => 0, # Y 軸最小値
y_max_value => 100, # Y 軸最大値
y_tick_number => 0, # Y 軸目盛りの数
y_number_format => sub { '' } # Y 軸目盛りに表示する値のフォーマット
);

my $gd = $graph->plot(\@adata);

binmode(STDOUT, ':raw');
print($gd->gif());


$graph->set() のパラメータの y_number_format には '%04d' のように、printf に用いるフォーマットを与えます。
例えば、'%04d' とすれば上位の桁が 0 で埋められた 4 桁の整数が表示されます。そのため、'' (長さ0の文字列) を指定すれば目盛りが表示されなくなるわけです。