- Home ›
- JFreeChartを使ったグラフ作成 ›
- グラフ作成の手順 ›
- HERE
グラフの描画領域
グラフ全体を表すJFreeChartクラスのオブジェクトの中にはグラフのタイトルやグラフの凡例の他に実際にグラフが描かれる描画領域が含まれます。グラフの描画領域はPlotクラスを使用します。
Plotクラスのクラス図は次のようになっています。
- java.lang.Object
- org.jfree.chart.plot.Plot
- public abstract class Plot extends java.lang.Object implements AxisChangeListener, DatasetChangeListener, MarkerChangeListener, LegendItemSource, org.jfree.util.PublicCloneable, java.lang.Cloneable, java.io.Serializable
PlotクラスはAbstractクラスですので、実際にはグラフの種類毎に用意されているサブクラスを使用します。用意されているサブクラスには次のようなものがあります。
CategoryPlot CompassPlot ContourPlot DialPlot FastScatterPlot MeterPlot MultiplePiePlot PiePlot PolarPlot SpiderWebPlot ThermometerPlot WaferMapPlot XYPlot
ここでは例として円がラフを作成してみます。円グラフの場合は「PiePlot」クラスを使用します。(PiePlotクラスについての詳細は別のページで行います)。
PiePlotクラスのコンストラクタの1つは次のようになっています。
PiePlot public PiePlot(PieDataset dataset)
Creates a plot that will draw a pie chart for the specified dataset. Parameters: dataset - the dataset (null permitted).
引数にはグラフの元になるデータを表すPieDatasetインターフェースを実装したクラス(例えばDefaultPieDatasetクラス)のオブジェクトを指定します。(データについては次のページの「グラフのデータ」を参照して下さい)。
実際には次のように記述します。
DefaultPieDataset data = new DefaultPieDataset(); PiePlot plot = new PiePlot(data); JFreeChart chart = new JFreeChart(plot);
上記ではグラフのデータを表すDefaultPieDatasetクラスのオブジェクトを作成し、そのオブジェクトを引数に指定してPiePlotクラスのオブジェクトを作成します。そして今度はPiePlotクラスのオブジェクトを引数にしてJFreeChartクラスのオブジェクトを作成します。
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PiePlot; import org.jfree.data.general.DefaultPieDataset; import org.jfree.chart.ChartUtilities; import java.io.File; import java.io.IOException; public class Test2_1{ public static void main(String[] args) { DefaultPieDataset data = new DefaultPieDataset(); JFreeChart chart = new JFreeChart(new PiePlot(data)); File file = new File("./test2_1.png"); try { ChartUtilities.saveChartAsPNG(file, chart, 300, 300); } catch (IOException e) { e.printStackTrace(); } } }
上記をコンパイルした後で実行すると次のように表示されます。
「File」から下の行はまだ解説していませんが、作成したJFreeChartクラスのオブジェクトを使って作成したグラフをPNG画像として保存するためのものです。プログラムを実行すると「test2_1.png」と言うファイルが作成されています。
まだグラフのデータなどを指定していませんので枠が表示されているだけです。
( Written by Tatsuo Ikura )