JFreeChart – 折れ線グラフを作成するには


折れ線グラフを作成するには
ChartFactoryクラスのcreateXYLineChartメソッドを使用します。


package net.tk_factory.example.jfreechart;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;

import net.tk_factory.example.AbstractExample;

import org.apache.log4j.Logger;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

/**
* JFreeChartを使用したサンプルプログラムです。
*
* 内容
*

    *
  1. 折れ線グラフを作成します。
  2. *

  3. ChartUtilitiesクラスを使用して、PNG形式で画像を出力します。
  4. *

*
* @author Takafumi Kondo (TK Factory)
*/
public class ExampleCreateXYLineChart extends AbstractExample
{
/** クラス名 */
private static final String CLASS_NAME =
ExampleCreateXYLineChart.class.getSimpleName();

/** ロガー */
private static final Logger LOGGER =
Logger.getLogger(ExampleCreateXYLineChart.class.getName());

/** 出力ファイル名(PNG形式) */
private static final String OUT_FILE_NAME_PNG =
EXAMPLE_FILE_DIRECTORY + CLASS_NAME + “.png”;

/**
* ExampleCreateXYLineChartオブジェクトを構築すると、
* UnsupportedOperationExceptionがスローされます。
*/
protected ExampleCreateXYLineChart()
{
throw new UnsupportedOperationException();
}

/**
* mainメソッドです。
*
* @param args 引数
*/
public static void main(String[] args)
{
LOGGER.info(“[START]” + CLASS_NAME);

FileOutputStream png = null;

try
{
//すでに出力ファイルが存在している場合は削除する
deleteExistsFile(OUT_FILE_NAME_PNG);

//レガシーテーマを設定する
ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());

//折れ線グラフのデータを設定する
XYSeriesCollection dataset = new XYSeriesCollection();
Random rand = new Random();
XYSeries series = new XYSeries(“Aサーバ”);
for (int i = 0; i < 24; i++) { series.add(i, rand.nextInt(20)); } dataset.addSeries(series); //折れ線グラフを生成する JFreeChart chart = ChartFactory.createXYLineChart( //・グラフタイトル "時間帯別アクセス数", //・X軸ラベル "時間", //・Y軸ラベル "アクセス数", //・データセット dataset, //・グラフの出力方向 PlotOrientation.VERTICAL, //・凡例の表示有無 true, //・ツールチップの表示有無 false, //・URL動的生成の有無 false); //PNG形式でファイルへ保存する png = new FileOutputStream(OUT_FILE_NAME_PNG); ChartUtilities.writeChartAsPNG(png, chart, 600, 400); } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } finally { try { if (png != null) { png.close(); } } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } LOGGER.info("[E N D]" + CLASS_NAME); } } } [/java] 作成されるファイルはこんな感じです。 ExampleCreateXYLineChart

関連記事

  1. 日本語の文字化け対策として、レガシーテーマを設定するように変更しました。

  2. ソースを見直し、一部、修正しました。

  1. トラックバック 0

return top