- Home ›
- JFreeChartを使ったグラフ作成 ›
- グラフ作成の手順 ›
- HERE
ファクトリメソッドを使ったJFreeChartクラスのオブジェクト作成
ここまでは使用したいグラフの種類に合わせてPlotクラスのサブクラスのオブジェクトを元にJFreeChartクラスのオブジェクトを作成してきました。今度はユーティリティクラスであるChartFactoryクラスを使ったグラフの作成方法を確認してみます。
ChartFactoryクラスではJFreeChartクラスのオブジェクトを作成するためのファクトリメソッドが数多く用意されています。
ChartFactoryクラスのクラス図は次のように定義されています。
- java.lang.Object
- org.jfree.chart.ChartFactorzy
- public abstract class ChartFactory extends java.lang.Object
コンストラクタは使用せず、各グラフ毎に用意されたスタティックメソッドを使います。次のようなメソッドが用意されています。
createAreaChart createBarChart createBarChart3D createBoxAndWhiskerChart createBubbleChart createCandlestickChart createGanttChart createHighLowChart createHistogram createLineChart createLineChart3D createMultiplePieChart createMultiplePieChart3D createPieChart createPieChart3D createPolarChart createRingChart createScatterPlot createStackedAreaChart createStackedBarChart createStackedBarChart3D createStackedXYAreaChart createTimeSeriesChart createWaferMapChart createWaterfallChart createWindPlot createXYAreaChart createXYBarChart createXYLineChart createXYStepAreaChart createXYStepChart
各メソッドはJFreeChartクラスのオブジェクトを返してくれます。それでは円グラフを作成するための「createPieChart」メソッドを見てみます。
createPieChart public static JFreeChart createPieChart(java.lang.String title, PieDataset dataset, boolean legend, boolean tooltips, boolean urls)
Creates a pie chart with default settings. The chart object returned by this method uses a PiePlot instance as the plot. Parameters: title - the chart title (null permitted). dataset - the dataset for the chart (null permitted). legend - a flag specifying whether or not a legend is required. tooltips - configure chart to generate tool tips? urls - configure chart to generate URLs? Returns: A pie chart.
引数にはタイトルやデータなどの必要な情報を指定してメソッドを実行すると結果としてJFreeChartクラスのオブジェクトを取得できます。なお4番目と5番目の引数はグラフを画像として出力する場合は気にしないで結構です。
実際の使い方は次のようになります。
DefaultPieDataset data = new DefaultPieDataset(); data.setValue("支持する", 56); data.setValue("支持しない", 41); data.setValue("未回答", 3); JFreeChart chart = ChartFactory.createPieChart("Title", data, true, false, false);
数多くのファクトリメソッドが用意されていますので、ほとんどの場合はChartFactoryクラスの各メソッドを使ってJFreeChartクラスのオブジェクトを作成することになります。
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.data.general.DefaultPieDataset; import org.jfree.chart.ChartUtilities; import java.io.File; import java.io.IOException; public class Test4_1{ public static void main(String[] args) { DefaultPieDataset data = new DefaultPieDataset(); data.setValue("支持する", 56); data.setValue("支持しない", 41); data.setValue("未回答", 3); JFreeChart chart = ChartFactory.createPieChart("Title", data, false, false, false); File file = new File("./test4_1.png"); try { ChartUtilities.saveChartAsPNG(file, chart, 300, 300); } catch (IOException e) { e.printStackTrace(); } } }
上記をコンパイルした後で実行すると次のように表示されます。
今回も作成したJFreeChartクラスのオブジェクトを使って作成したグラフをPNG画像として保存しています。プログラムを実行すると「test4_1.png」と言うファイルが作成されています。
今回はタイトルも表示されています。逆に凡例は非表示としました。前のページのグラフと見比べて見てください。
( Written by Tatsuo Ikura )