JFreeChart入門 - JFreeChartで折れ線グラフの作成 - その2

2011/12/14 20:04 Update
TAGS: JFreeChart | 折れ線グラフ | XYDataset
JFreeChartのXYDatasetで折れ線グラフの作成について解説します。

はじめに


JFreeChartとは:JFreeChart - Javaで書かれたフリーで使える高機能なチャート作成ライブラリ

JFreeChart入門 - JFreeChartのインストール及びJFreeChartデモの実行

今回はJFreeChartのXYDatasetを使って折れ線グラフを作成してみます。

今回のテスト環境
OS :WindowsXP
Java:jdk1.5.0_06
JFreeChart:1.0.9(2008年3月 最新版)
※JFreeChartはJavaで書かれたライブラリなので、Windows以外のOSでも正常に動きます。


JFreeChartで折れ線グラフ(XYLine Chart)の作成


JFreeChartで折れ線グラフを作成するには、次のようなステップに従えば、非常に簡単に行えます。
ステップ1:XYDatasetオブジェクトの作成
ステップ2:DatasetからJFreeChartオブジェクトを作成、設定
ステップ3:ファイルやサーブレットに出力

Javaソース:
CreateJFreeChartXYLine.java

package com.syboos.demo.jfreechart;

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection;

//JFreeChartで折れ線グラフ(XYLineChart)を作成 サンプル public class CreateJFreeChartXYLine {

    /**      * JFreeChartで折れ線グラフ(XYLineChart)を作成      */     public static void main(String[] args) {         // ステップ1:Datasetオブジェクトの作成         XYDataset dataset = createXYDataset();         // ステップ2:DatasetからJFreeChartオブジェクトを作成、及び設定         JFreeChart freeChart = createChart(dataset);         // ファイルや、Servletに出力         saveAsFile(freeChart, "c:\jfreechart\lineXY.png", 500, 400);     }

    // ファイルに保存する     public static void saveAsFile(JFreeChart chart, String outputPath,             int weight, int height) {         FileOutputStream out = null;         try {             File outFile = new File(outputPath);             if (!outFile.getParentFile().exists()) {                 outFile.getParentFile().mkdirs();             }             out = new FileOutputStream(outputPath);             // PNGイメージファイルに保存する             ChartUtilities.writeChartAsPNG(out, chart, 300, 200);             // JPEGイメージファイルに保存する             // ChartUtilities.writeChartAsJPEG(out, chart, 500, 400);             out.flush();         } catch (FileNotFoundException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } finally {             if (out != null) {                 try {                     out.close();                 } catch (IOException e) {                     // do nothing                 }             }         }     }

    // XYDatasetからJFreeChartを作成     public static JFreeChart createChart(XYDataset dataset) {         // 折れ線グラフを作成するためのJFreeChartオブジェクトの生成:ChartFactory.createXYLineChart         JFreeChart jfreechart = ChartFactory.createXYLineChart("XYLine Chart Demo", // タイトル                 "年分", // categoryAxisLabel (カテゴリ軸、横軸、X軸のラベル)                 "数量", // valueAxisLabel(ヴァリュー軸、縦軸、Y軸のラベル)                 dataset, // dataset                 PlotOrientation.VERTICAL, true, // legend                 false, // tooltips                 false); // URLs

        // 以下の設定は省略しても構いません。         // 出力される円グラフの透明度、境界線の色/有無などの設定を行う:クラスPlot(折れ線グラフはCategoryPlot)         XYPlot plot = (XYPlot) jfreechart.getPlot();         // 背景色 透明度         plot.setBackgroundAlpha(0.5f);         // 前景色 透明度         plot.setForegroundAlpha(0.5f);         // その他設定は XYPlotを参照

        return jfreechart;     }

    /**      * XYDatasetオブジェクトの作成。      *      * 折れ線グラフ(XYLineChart)を作成するために、XYDatasetを用意しなければなりません。      */     private static XYDataset createXYDataset() {         XYSeries xyseries1 = new XYSeries("One");         xyseries1.add(1987, 50);         xyseries1.add(1997, 20);         xyseries1.add(2007, 30);                  XYSeries xyseries2 = new XYSeries("Two");         xyseries2.add(1987, 20);         xyseries2.add(1997, 10D);         xyseries2.add(2007, 40D);         

        XYSeries xyseries3 = new XYSeries("Three");         xyseries3.add(1987, 40);         xyseries3.add(1997, 30.0008);         xyseries3.add(2007, 38.24);         

        XYSeriesCollection xySeriesCollection = new XYSeriesCollection();

        xySeriesCollection.addSeries(xyseries1);         xySeriesCollection.addSeries(xyseries2);         xySeriesCollection.addSeries(xyseries3);                  return xySeriesCollection;     }

}



コンパイル及び実行
次のようなコマンドでコンパイル及び実行を行います。
C:\Work\Download\JFreeChart\demos>javac -classpath .;jcommon-1.0.12.jar;jfreechart-1.0.9.jar com/syboos/demo/jfreechart/CreateJFreeChartXYLine.java

C:\Work\Download\JFreeChart\demos>java -classpath .;jcommon-1.0.12.jar;jfreechart-1.0.9.jar  com.syboos.demo.jfreechart.CreateJFreeChartXYLine

C:\Work\Download\JFreeChart\demos>

※C:\Work\Download\JFreeChart\demosの構成は次のようになります:
jcommon-1.0.12.jar
jfreechart-1.0.9.jar
com\
   syboos\
         demo\
             jfreechart\
                       CreateJFreeChartXYLine.java


ファイルC:\jfreechart\lineXY.pngが作成されます。

≪図1≫

Sponsored Link


有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation