=encoding euc-jp =head1 名前 SVGGraph - SVGのグラフ/ダイアグラム/チャート/プロットを作成するためのPerl拡張 =head1 概要 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'] ); =head1 説明 このモジュールは、GNUplotがおこなうように、座標を持った配列の 集合をグラフに変換します。SVG(Scalable Vector Graphics)形式で、 そのグラフを作成します。それには縦の棒グラフ(verticalbars)と 折線グラフ(spline)の2つのスタイルを持っています。 これは軽くなるように設計されています。 あなたのインターネット・ブラウザがSVGを表示できないのであれば、 adobe.comでプラグインをダウンロードしてみてください。 =head1 利用例 例はこちらのサイトをご覧ください: 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'] ); =head1 作者 Teun van Eijsden, teun@chello.nl =head1 参考資料 http://perldoc.com/ SVG stylingについては: http://www.w3.org/TR/SVG/styling.html