グラフサンプル (No.-32) グラフ名: 画像名:sample63.gif CGI名:sample63.pl
sample63.gif


【要点】
(1)混合グラフを書く
  GD::Graph::mixed; #円グラフ以外の組み合わせでグラフを
                        #描きます。
  my $my_graph = new GD::Graph::mixed();

 #円グラフ以外(太字はグラフの種類)とは、
 #GD::Graph::lines:折れ線グラフ
 #GD::Graph::bars and GD::Graph::bars:棒グラフ
 #GD::Graph::points:点グラフ
 #GD::Graph::linespoints:折れ線と点のグラフ
 #GD::Graph::area:面グラフ です。
(2)Y軸目盛を描く
  y_min_value => 0,    #Y軸目盛の最小値
  y_max_value => 50,   #Y軸目盛の最大値
  y_tick_number => 10, #Y軸目盛の数
  y_label_skip => 2,   #Y軸目盛の値を2つ毎に表示
(3)棒の描き方
  cumulate  => 1, #  1:データセットは互いの上に積み重なります(積み上げ)。
                  #  棒グラフ、面グラフのみサポート。overwriteも参照して下さい。
 (参考:棒の描き方)
   overwrite => 1, #  0:違うデータセットの棒は
                   #  隙間無く表示(デフォルト)
                   #  1:互いの前に重なる
                   #  2:上に積み重ね(この場合
                   # cumulateを使用する)
(4)グラフの種類を指定する
  types => [qw(area bars bars lines)], #面、棒、棒、折れ線
(5)色を指定する
  dclrs => [undef, (lgray gray red)], #棒、線、点、円グラフ等の背景色
          #面は未定義 最初の棒はlgray(#bfbfbf) 次の棒はgray(#7f7f7f) 折れ線は赤
          #lgray(#bfbfbf):薄い灰色
  borderclrs => [undef, (black black black)], #棒グラフの棒面の境界線
          #面は未定義 後は黒 黒 黒 (最後の黒は、折れ線のため無意味)
sample63.pl

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

# Also see sample17

print STDERR "Processing sample63\n";

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],
	[   16,   24,   39,   31,   22,   9.5,   7,    18,    25],
);

my $my_graph = new GD::Graph::mixed();

$my_graph->set( 
	x_label 		=> 'X Label',
	y_label 		=> 'Y label',
	title 			=> 'Emulation of error bars',
	y_min_value 	=> 0,
	y_max_value 	=> 50,
	y_tick_number 	=> 10,
	y_label_skip 	=> 2,
	cumulate 		=> 1,
	types 			=> [qw(area bars bars lines)],
	dclrs 			=> [undef, qw(lgray gray red)],
	borderclrs 		=> [undef, qw(black black black)],
	line_width 		=> 2,
	bar_width		=> 4,

	transparent 	=> 0,
)
or warn $my_graph->error;

$my_graph->set_legend(undef, qw(increment more));
$my_graph->plot(\@data) or die $my_graph->error;
save_chart($my_graph, 'sample63');


(参考)
  ●本ソースコードの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