グラフサンプル (No.-30) グラフ名: 画像名:sample61.gif CGI名:sample61.pl
sample61.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)グラフの種類を指定する((1)項参照)
 types => [ ( lines bars points area linespoints wrong_type ) ],
 default_type => 'points', #混合グラフにおいてグラフの種類がわからなかった
                           #場合のグラフの種類。この例ではwrong_type 。
                           #デフォルトはlinesです。
(3)Y軸の目盛を描く(No21 sample41.gif-(2)参照)
  y_max_value     => 10, #Y軸目盛の最大値
  y_min_value     => -5, #Y軸目盛の最小値
  y_tick_number   => 3,  #Y軸目盛の数
(4)目盛を描く間隔を指定する
  y_label_skip => 1,  #指定した数毎にY軸目盛の値を表示します。
                      #Y軸の場合、y_label_skipで指定します。
(5)目盛の値を描く描かないを指定する
  x_plot_values => 0,
  y_plot_values => 0,
   # 0:X軸、Y軸の目盛の値が表示されません。 1:表示されます。(デフォルト)
(6)軸の線を描く、描かない、を制御する
  long_ticks => 1, #true(=1)の場合、目盛りの線を軸いっぱいに描きます。
                   #デフォルトは0です。
  x_ticks  => 0, # 1:trueならば、X軸に目盛が描かれます。
                  #x_long_ticksx_tick_lengthの値により描かれます。
                  # 0:X軸に目盛を描かない。
(7)色、点(マーカー)について(デフォルト値)
・色は(指定例.  dclrs => [ qw (green pink blue cyan) ] )
  dclrs(棒、線、点(マーカー)、円グラフ等色)が設定されていませんので
  デフォルト値(lred lgreen lblue lyellow lpurple cyan lorange) により
  色が、順に付いています。赤、グリーン、ブルー・・・。
・マーカーは(指定例.  markers => [ 9, 10, 1, 7, 5 ] )
  デフォルトの十字(3番目)と菱形(6番目)が使用されています。
   # マーカーは、データセットとの対応で指定します。
   #以下のマーカー数字で指定します。
   # 1:塗りつぶされた四角(filled square)
   # 2:四角(open square)
   # 3:十字(horizontal cross)
   # 4:対角線の十字(diagnal cross)
   # 5:塗りつぶされた菱形(filled diamond)
   # 6:菱形(open diamond)
   # 7:塗りつぶされた丸(filled circle)
   # 8:丸(open circle)
   # 9:横線(horizontal line)
   # 10:縦線(virtical line)
   # デフォルトは[1,2,3,4,5,6,7,8]

sample61.pl

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

print STDERR "Processing sample61 (The error message is intended)\n";

my @data = ( 
    ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"],
    [    1,    2,    5,    6,    3,  1.5,   -1,    -3,    -4],
    [   -4,   -3,    1,    1,   -3, -1.5,   -2,    -1,     0],
    [    9,    8,    9,  8.4,  7.1,  7.5,    8,     3,    -3],
    [  0.1,  0.2,  0.5,  0.4,  0.3,  0.5,  0.1,     0,   0.4],
    [ -0.1,    2,    5,    4,   -3,  2.5,  3.2,     4,    -4],
    [ -0.1,    2,    5,    4,   -3,  2.5,  3.2,     4,    -4],
);

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

$my_graph->set( 
    types => [ qw( lines bars points area linespoints wrong_type ) ],
    default_type => 'points',
);

$my_graph->set( 

    x_label         => 'X Label',
    y_label         => 'Y label',
    title           => 'A Mixed Type Graph',

    y_max_value     => 10,
    y_min_value     => -5,
    y_tick_number   => 3,
    y_label_skip    => 1,
    x_plot_values   => 0,
    y_plot_values   => 0,

    long_ticks      => 1,
    x_ticks         => 0,

    legend_marker_width => 24,
    line_width      => 3,
    marker_size     => 5,

    bar_spacing     => 8,

    transparent     => 0,
);

$my_graph->set_legend( qw( one two three four five six ) );
$my_graph->plot(\@data) or die $my_graph->error;
save_chart($my_graph, 'sample61');


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