見栄えのよいグラフを容易に作成できる「FusionCharts Free」
Flashの表現力を活用したグラフをXMLデータから生成「FusionCharts」は、FlashとXMLをベースとしたグラフ作成ライブラリである。Flashの表現力を生かして見栄えのよいグラフを作成することができる。有償版とフリー版があり、フリー版はMIT LicenseおよびGNU GPLのデュアル・ライセンスに基づいてオープンソースで公開されている。また、有償版にはトライアル版も用意されている。今回は、フリー版の「FusionCharts Free」を紹介する。
杉山貴章
XML+Flashでグラフを作成
FusionChartsでは、グラフのデータをXML形式で記述し、それをFlashを用いて描画する。Flashを利用しているのでアニメーションを駆使した見栄えのよいグラフを作成することができる。とは言っても、Flash側のファイルは一切いじる必要はなく、自分で書かなければならないのは元データとなるXMLと、それをFlashオブジェクトに読み込ませるためのHTMLだけだ。
したがって、サーバ・サイドの技術やプログラミングに関する知識が無くても利用することができる。一方でJavaScriptやPHP、JSP、ASP、ASP.NET、Ruby on Railsなどに対応したライブラリも提供されており、Webアプリケーションから利用したい場合にはこれらのライブラリを使えばよい。FusionCharts Freeで作成できるグラフとしては次のようなものがある。
- 2Dおよび3Dの棒グラフ
- 折れ線グラフ
- 2Dおよび3Dの円グラフ
- エリア・グラフ
- 積み上げグラフ
- ロウソク足グラフ
- ファンネル・グラフ
- ガント・チャート
この他の棒グラフと折れ線グラフを組み合わせて使うこともできる。公式サイトで公開されているチャート・ギャラリーを見れば、各グラフの描画の様子がよくわかるだろう。
元となるXML形式のデータには様々なパラメータが用意されており、これを1から記述するのはそれほど容易ではない。しかし、FusionChartsには「Chart XML Reference」として、さまざまなグラフを記述する場合のXMLがまとめられているため、これを雛型とすることで一般的なグラフであれば問題なく作成することができる。また、有償版にはXMLデータをグラフィカルなインタフェースで作成するためのツールが付属している。
有償版とフリー版のその他の相異点は、このページにまとめられている。有償版では、利用できるグラフの種類が多く、また、さまざまな機能やツールが追加されるようだ。ベースとなるFlash技術も、フリー版がFlash MX / ActionScript 1なのに対して、有償版はAdobe Flash 8 / ActionScript 2となっている。
環境の準備
FusionChart Freeは、このページよりダウンロードすることができる。ダウンロードには名前とメール・アドレスの登録が必要。ダウンロードしたファイル(FusionChartsFree.zip)を展開すると、次のようなディレクトリ構成になっている。
- index.html:各種ドキュメントのトップページ
- Contents:ドキュメントのコンテンツ
- Gallery:各種グラフのサンプル
- Charts:グラフを描画するためのswfファイル
- JSClass:FusionChartsのswfをscriptタグで読み込むためのJavaScriptライブラリ
- Code:各種言語からFusionChartsを利用するためのライブラリやサンプルコード
- SourceCode:ソースコード
最初に、Webブラウザでindex.htmlを開いてサンプル・ギャラリー(画面1)やChart XML Referenceなどに目を通しておくといいだろう。
FusionChartsを利用する際に絶対に必要なのは、Chartsディレクトリ以下にあるswfファイルである。そして、プログラミング言語から利用する場合は、Codeディレクトリ以下のファイルが必要となる。また、グラフを(objectタグではなく)scriptタグでページに埋め込みたい場合には、JSClass以下のFusionCharts.jsが必要となる。
これらのディレクトリを、Webサーバのコンテンツ用ディレクトリに配置する。本稿の例では、環境設定の手間を省くために「XAMPP」を利用し、htdocsディレクトリ以下にCharts、Code、JSClassの3つのディレクトリをコピーして使用する。作成したHTMLファイルとXMLファイルはhtdocs/FusionChartsSampleディレクトリに配置することにする。
























