TOP設計・移行・活用> 複数軸、複数データセットのグラフ
オープンソース帳票システム
オープンソース帳票システム

第6回:JFreeChartでグラフ作成(後編)
著者:ビーブレイクシステムズ  横井 朗   2005/4/8
前のページ  1  2  3   4  次のページ
複数軸、複数データセットのグラフ

   今まで作成してきたグラフはどれも、1つの軸に1つのデータセットを持つものでしたが、異なるカテゴリーについて関連性を見いだしたい場合や、比較を行いたい場合など、同一のグラフとして見えた方がユーザにとって利便性が高いことがあります。そのような場合はここで紹介する複数軸、複数データセットのグラフを使用します。

   図3の例では棒グラフと折れ線グラフを同一グラフエリア上に表示しています。
複数軸、複数データセットのグラフ
図3:複数軸、複数データセットのグラフ


text  完成版のソースコード
DualAxisChartSample.java
  (クリックするとソースコードが表示されます)
// (1)ベースとなるグラフを生成
JFreeChart chart =
ChartFactory.createBarChart(
"Dual Axis Sample",
"Category",
"Value",
barDataset,
PlotOrientation.VERTICAL,
true,
true,
false);

// (2)追加する折れ線グラフのデータセットを追加
CategoryPlot plot = chart.getCategoryPlot();
plot.setDataset(1, lineDataset);
plot.mapDatasetToRangeAxis(1, 1);

// (3)追加する折れ線グラフの軸を設定
CategoryAxis domainAxis = plot.getDomainAxis();
ValueAxis axis2 = new NumberAxis("Secondary");
plot.setRangeAxis(1, axis2);

// (4)追加する折れ線グラフの表示設定
LineAndShapeRenderer renderer = new LineAndShapeRenderer();
renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
plot.setRenderer(1, renderer);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
(1)ベースとなるグラフを生成

   まずはベースとなるグラフを今まで見てきたグラフと同様に生成します。今回の場合は棒グラフをベースとして折れ線グラフを追加しますので、ここでは棒グラフを生成しています。

(2)追加する折れ線グラフのデータセットを追加

   次に、ベースとなるJFreeChartのオブジェクトから、"getCategoryPlot()"でグラフの描画領域を取得し、"setDataset()"でデータセットを設定します。

(3)追加する折れ線グラフの軸を設定

   続いて、"getDomainAxis()"でグラフの描画領域から縦軸を取得し、グラフの右側に表示される折れ線グラフ用の軸を設定します。

(4)追加する折れ線グラフの表示設定

   ここまでの処理で、データセット、軸の設定が出来ていますので、最後にグラフの種類を決定します。

   今回は折れ線グラフを使用するので"LineAndShapeRenderer"のインスタンスを生成し、グラフの描画領域に設定します。なお、データセット、軸、グラフの種類は"setDataset()"、"setRangeAxis()"、"setRenderer()"の第1引数で指定したインデックスで関連付けられています。

前のページ  1  2  3   4  次のページ


ビーブレイクシステムズ
著者プロフィール
株式会社ビーブレイクシステムズ  横井 朗  
オープンソース指向技術コンサルタント。Java専門のソフトウェアハウス〜フリーエンジニアを経て現職。帳票開発のみならず、オープンソースを用いたシステム構築を日々提案。なによりもお客様の真のニーズを求めるため社内外でオープンソースに関する啓蒙活動を行う。


INDEX
第6回:JFreeChartでグラフ作成(後編)
  グラフのカスタマイズ
  グラフ全体のカスタマイズ
複数軸、複数データセットのグラフ
  複数のグラフエリアを持つグラフ