グラフサンプル (No.-9) グラフ名:棒グラフ 画像名:sample15.gif CGI名:sample15.pl
sample15.gif


【要点】
(1)縦棒グラフ、横棒グラフ
   GD::Graph::bars;    #縦棒グラフ
   GD::Graph::hbars;   #横棒グラフ
  for my $my_graph (GD::Graph::bars->new, GD::Graph::hbars->new)
(2)棒(バー)の描き方
  cumulate  => 2, #  1:データセットは互いの上に積み重なります。
                  #  棒グラフ、面グラフのみサポート(1の誤り?)
(3)棒グラフの境界線
  borderclrs => $my_graph->{dclrs}, 
                         #棒面の境界線をdclrsのデフォルトに
                         #設定しています。デフォルトは次のとおり。
  # dclrs => [ qw(lred lgreen lblue lyellow lpurple cyan lorange) ] 
  #結果は、棒面の色とその境界線は同じ色です。
sample15.pl

chdir("C:\\Inetpub\\wwwroot\\uriage"); #カレントディレクトリ指定(IISの場合)
use lib 'C:/Inetpub/wwwroot/uriage'; #GD::Graphライブラリ格納フォルダ GD (固定)の場所
#
use GD::Graph::bars;
use GD::Graph::hbars;
require 'save.pl';

my @data = ( 
    ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"],
    [   11,   12,   15,   16,    3,  1.5,    1,     3,     4],
    [    5,   12,   24,   15,   19,    8,    6,    15,    21],
    [    12,   3,    1,   5,    12,    9,   16,    25,    11],
);

my @names = qw/sample15 sample15-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         => 'X Label',
	y_label         => 'Y label',
	title           => 'Stacked Bars (incremental)',
	#y_max_value     => 50,
	#y_tick_number   => 10,
	#y_label_skip    => 2,
	cumulate        => 2,
	borderclrs      => $my_graph->{dclrs},
	#cycle_clrs      => 2,
	bar_spacing     => 4,
	#shadow_depth	=> 4,

	transparent     => 0,
    );

    $my_graph->set_legend( qw(offset increment more));
    $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(グラフ画像保存ルーチン)

最終更新日:2005.1.17