JFreeChartって何だ?
JFreeChartの開発元についてちょっと触れ,JFreeChartのインストールとサンプル実行,JFreeChartのフレームワークについて記述する.
JFreeChartはwww.jfree.orgで開発されているグラフ生成用Javaクラスライブラリ及びフレームワークである.ここではJFreeChartだけでなくレポート作成JavaクラスライブラリJFreeReportやJFree製品共通クラスライブラリJCommon,JFreeReportのためのgraphical report definition editor(何?)JFreeDesignerなど,JFreeをその名に冠するものをいろいろと作っている.JFreeChartはGoogleのAdWords(tm)などで使用されていたりするらしい.
JFreeChartのクラスライブラリとフレームワークにより,棒グラフや円グラフなどを簡単に作成できる.その成果物はPanelやFrameとしてJavaアプリケーションやアプレットで使用できるし,サーブレットからHttpクライアントに画像データを出力することもできるらしい.
JFreeChartを使用するには,JFreeChartとJCommonをインストールする必要がある.www.jfree.orgから両者をダウンロードする.私は以下をダウンロードした.
- jfreechart-0.9.16.tar.gz(For GNU/Linux)
- jcommon-0.9.1.tar.gz(For GNU/Linux)
export CLASSPATH=$CLASSPATH:/..../jcommon/jcommon-0.9.1/jcommon-0.9.1.jar export CLASSPATH=$CLASSPATH:/.../jfreechart/jfreechart-0.9.16/jfreechart-0.9.16.jar簡単(※).
※ 恥かしながら私は基本的なCLASSPATHの設定が不足していたので,以下も追加する必要があった(私の環境はDebian GNU/Linux Woody).
export CLASSPATH=$CLASSPATH:/usr/share/orp/classpath/
上記の方法でJFreeChartをインストールすると,サンプルも付属してくる.READMEファイルによると以下で実行できる.
java -jar jfreechart-0.9.16-demo.jarサンプルではJFreeChartで作成できる(おそらく)全パターンのグラフを閲覧できるグラフを閲覧できるようだ.
サンプルやJavaDocを見て,私なりにJFreeChartのフレームワークを解釈してみた.まず概観するためにクラス図を書いてみた.
JFreeChartの中心となるクラスはJFreeChartである.このクラスを使用して最終的にChartPanelやChartFrameをnewする.これらはそれぞれSWINGのPanel,Frameのサブクラスであり,ここより上位はSWINGのフレームワークの範疇となる.JFreeChartに主眼をおいたコードの流れは大体以下のようになる.
上のクラス図のようにJFreeChartにはTitle,Legend,Plot,Datasetといった情報を持つ.
- DatasetUtilitiesでCategoryDatasetを作成.
- ChartFactoryにCategoryDatasetを渡してJFreeChartを作成.
- JFreeChartを使用してChartPanelやChartFrameを作成.
- Title
- グラフタイトルl
- Legend
- グラフ中に表示されるプロットの説明.
- Plot
- JFreeChartからの委譲により,実際にグラフをプロットする実体.すなわちSWINGフレームワークでChartPanelやCharFrameに描画命令が下ると,それらは保持しているJFreeChartに委譲し,JFreeChartはPlotに委譲するということだろうか.
- Dataset
- 描画に使用するデータ.

