TOP設計・移行・活用> グラフ全体のカスタマイズ
オープンソース帳票システム
オープンソース帳票システム

第6回:JFreeChartでグラフ作成(後編)
著者:ビーブレイクシステムズ  横井 朗   2005/4/8
前のページ  1  2   3  4  次のページ
グラフ全体のカスタマイズ

   作成したJFreeChartのオブジェクトに対して操作することで、グラフ全体の見た目を調整しています。
// (1)グラフ全体の背景色の設定
chart.setBackgroundPaint(Color.WHITE);

// (2)グラフ全体の境界線の設定
chart.setBorderVisible(true);
chart.setBorderPaint(Color.BLACK);
chart.setBorderStroke(new BasicStroke(5));
(1)グラフ全体の背景色の設定
  • "setBackgroundPaint()"でグラフの背景色を設定しています
(2)グラフ全体の境界線の設定
  • "setBorderVisible()"でグラフの境界線の表示を設定しています
  • "setBorderPaint()"で境界線の色を設定しています
  • "setBorderStroke()"で幅を設定しています
グラフの描画領域のカスタマイズ

   JFreeChartのオブジェクトからグラフの描画領域(CategoryPlot)を取得し、描画領域の見た目を調整しています。

// 描画領域の設定
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setRangeGridlinePaint(Color.BLUE);
plot.setDomainGridlinesVisible(false);
描画領域の設定
  • "getCategoryPlot()"でグラフの描画領域を取得しています
  • "setBackgroundPaint()"で背景色を設定しています
  • "setRangeGridlinePaint()"で縦軸に対応するグリッドラインの色を設定しています
  • "setDomainGridlinesVisible"で横軸に対応するグリッドラインの表示を設定しています
軸のカスタマイズ

   CategoryPlotのオブジェクトから横軸(CategoryAxis)、縦軸(NumberAxis)を取得し、縦横の軸の見た目を調整しています。

// (1)横軸の設定
CategoryAxis axis = plot.getDomainAxis();
axis.setLowerMargin(0.03);
axis.setUpperMargin(0.03);
axis.setCategoryLabelPositions
(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));

// (2)縦軸の設定
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
(1)横軸の設定
  • "getDomainAxis()"で横軸の設定を取得しています
  • "setLowerMargin()"、"setUpperMargin()"でラベルの間隔の設定をしています
  • "setCategoryLabelPositions()"でラベルの位置を設定しています
(2)縦軸の設定
  • "getRangeAxis()"で縦軸の設定を取得しています
  • "setStandardTickUnits()"で整数値のみを表示するように設定しています(今回は縦軸が数値のためNumberAxisにキャストしていていますが、縦軸が日付の場合はDateAxis、時刻の場合はPeriodAxisにキャストします)
凡例のカスタマイズ

   JFreeChartのオブジェクトから凡例(Legend)を取得し、凡例の見た目を調整しています。

// 凡例の表示位置設定
Legend legend = chart.getLegend();
legend.setAnchor( Legend.EAST);
凡例の表示位置設定
  • 凡例の表示位置を"setAnchor()"で右側に設定しています
バーのカスタマイズ

   CategoryPlotのオブジェクトからグラフの表示方法を決定するRendererオブジェクトを取得し、バーの見た目を調整しています。

// (1)Rendererの設定
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setItemMargin(0.30);
renderer.setDrawBarOutline(false);

// (2)バーのカラー設定
GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f,
0.0f, new Color(0, 0, 64));
GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f,
0.0f, new Color(0, 64, 0));
GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,
0.0f, new Color(64, 0, 0));
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);
(1)Rendererの設定
  • "getRenderer()"でBarRendererを取得しています(今回は棒グラフのためBarRendererにキャストしていますが、使用しているグラフの種類に合わせてキャストする必要があります)
  • "setItemMargin()"でバーの境界線の間隔を設定しています
  • "setDrawBarOutline()"でバーの境界線の表示を設定しています
(2)バーのカラー設定
  • グラデーション用のカラーを作成して、"setSeriesPaint()"でRendererにセットすることで、バーの色を設定しています
カスタマイズの流れ

   このように、JFreeChartのオブジェクトから変更したい部分に対応するオブジェクトを取得して、そのオブジェクトに対して属性を設定するというのが表示のカスタマイズの流れになります。以降ではより高度なカスタマイズ方法について説明します。

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


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


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