JFreeChart
JFreeChartは劣等GPLで配付されている,グラフ生成機能をもつJavaクラスライブラリ及びフレームワークである.JFreeChartを使用すると棒グラフ,折れ線グラフ,円グラフ,ガントチャートなどを用意に作成できるようだ.なかなか強力な機能を持っているにも係わらず日本語サイトで詳しく紹介されているサイトがないようなので,調査してみる.
まずJFreeChartでのフレームワークを説明し,それからJFreeChartを使用していろいろなグラフを作成してみる.
JFreeChartの開発元についてちょっと触れ,JFreeChartのインストールとサンプル実行,JFreeChartのフレームワークについて記述する.
JFreeChartを使用して円グラフを作成したみた.
JFreeChartを使用して棒グラフを作成してみた.
JFreeChartを使用して関数のグラフを作成してみた.
JFreeChartを使用して散布グラフを作成してみた.
JFreeChartを使用してHighLowOpenCloseグラフを作成してみた.HighLowOpenCloseグラフは,ある閾値XinからXoutの代表値Xに対して最大(max(f(x)),{x|Xin <= x <= Xout}),最小(min(f(x)),{x|Xin < x <= Xout}),入値(f(Xin)),出値(f(Xout))を表示するグラフである.
横軸を時間として適切にスケーリングしてグラフ表示したい場合もある.そこでJFreeChartを使用して時間軸を持つグラフを作成したみた.
JFreeChartによるグラフ作成に慣れたところで,グラフデータの更新,サーブレットでの表示など,応用的なことをやってみようと思う.
JFreeChartでグラフデータを定期的に更新して,ウィンドウ表示されるグラフも更新する方法を調査してみた.
SeriesDatasetを使用すると,一つのグラフエリアに複数のグラフを表示できることは,今までのサンプルで示した.本頁ではさらにそのグラフエリアを並べて表示してみる.
グラフをただ出すだけなら,JFreeChartとServletそれぞれに関して若干の知識があればどうってことなくできる気がするが,確認のためにグラフをただ出してみた.
JFreeChartでグラフを生成するのは非常に高価である.同じグラフを表示するのであれば,何度もJFreeChartオブジェクトを生成して画像データに変換して出力するということはしたくない.JFreeChartではこういった問題に対処するためのユーティリティクラスなどがあるようなので試してみた.
JFreeChartには,XMLファイルからチャート生成のためのデータを読み込むためのクラスがある.0.9.21ではCategoryDatasetとPieDatasetのみのサポートだが,Seriesもサポートされているようである.
JFreeChartには,チャート作成のためのデータをDBからデータを読み込むクラスがある.これを使用すると,比較的楽にDBのデータをグラフ化するJavaプログラムを作成することができる.
JFreeChartはGraphics2Dに対して描画できる.そしてApacheプロジェクトのbaticはGraphics2DのサブクラスであるSVGGraphics2Dを入力としてSVGを出力できる.両者のI/Fがつながるので,両者を単純に使用するだけでチャートをSVGで出力することができる.

