SVGGraph-0.04 > SVGGraph

名前

  SVGGraph - SVGのグラフ/ダイアグラム/チャート/プロットを作成するためのPerl拡張

概要

  use SVGGraph;

  my @a = (1, 2, 3, 4);
  my @b = (3, 4, 3.5, 6.33);

  print "Content-type: image/svg-xml\n\n";
  print SVGGraph->new(
                        {'title' => 'Financial Results Q1 2002'},
                        [\@a, \@b, 'Staplers', 'red']
                      );

説明

  このモジュールは、GNUplotがおこなうように、座標を持った配列の
  集合をグラフに変換します。SVG(Scalable Vector Graphics)形式で、
  そのグラフを作成します。それには縦の棒グラフ(verticalbars)と
  折線グラフ(spline)の2つのスタイルを持っています。
  これは軽くなるように設計されています。
  
  あなたのインターネット・ブラウザがSVGを表示できないのであれば、
  adobe.comでプラグインをダウンロードしてみてください。

利用例

  例はこちらのサイトをご覧ください: http://pearlshed.nl/svggraph/1.png
  そして http://pearlshed.nl/svggraph/2.png

  長いコードサンプル:
  #!/usr/bin/perl -w -I.

  use strict;
  use SVGGraph;

  ### x軸の値が入った配列
  my @a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
  ### y軸の値が入った配列
  my @b = (-5, 2, 1, 5, 8, 8, 9, 5, 4, 10, 2, 1, 5, 8, 8, 9, 5, 4, 10, 5);
  my @c = (6, -4, 2, 1, 5, 8, 8, 9, 5, 4, 10, 2, 1, 5, 8, 8, 9, 5, 4, 10);
  my @d = (1, 2, 3, 4, 9, 8, 7, 6, 5, 12, 30, 23, 12, 17, 13, 23, 12, 10, 20, 11);
  my @e = (3, 1, 2, -3, -4, -9, -8, -7, 6, 5, 12, 30, 23, 12, 17, 13, 23, 12, 10, 20);

  ### 初期化
  my $SVGGraph = new SVGGraph;
  ### どのMIMEタイプがくるかをブラウザに知らせるため、うまくいくようにcontent-typeを出力
  print "Content-type: image/svg-xml\n\n";
  ### グラフを出力
  print $SVGGraph->CreateGraph( {
            'graphtype' => 'verticalbars', ### verticalbars あるいは spline
            'imageheight' => 300, ### SVGイメージ全体の高さ
            'barwidth' => 8, ### 棒またはドットの幅(ピクセル単位)
            'horiunitdistance' => 20, ### X軸での1単位毎の距離(ピクセル単位)
            'title' => 'Financial Results Q1 2002',
            'titlestyle' => 'font-size:24;fill:#FF0000;',
            'xlabel' => 'Week',
            'xlabelstyle' => 'font-size:16;fill:darkblue',
            'ylabel' => 'Revenue (x1000 USD)',
            'ylabelstyle' => 'font-size:16;fill:brown',
            'legendoffset' => '10, 10' ### 左上の角からのピクセル数
          },
          [\@a, \@b, 'Bananas', '#FF0000'],
          [\@a, \@c, 'Apples', '#006699'],
          [\@a, \@d, 'Strawberries', '#FF9933'],
          [\@a, \@e, 'Melons', 'green']
        );

作者

  Teun van Eijsden, [email protected]

参考資料

  http://perldoc.com/
  SVG stylingについては: http://www.w3.org/TR/SVG/styling.html