JFreeChart - 2D 분포도/XYChart

카탈로그
package jp.avaj.lib.chart;

import java.lang.reflect.InvocationTargetException;
import java.util.Random;

import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
import org.jfree.data.xy.DefaultXYDataset;
import org.jfree.data.xy.XYDataset;

/**
■ JFreeChart-二次元分布チャート/XYChart

・PlotはXYPlot、DatasetはDefaultXYDatasetを使用する.
・DefaultXYDatasetは以下のメソッドを持っている
  addSeries(java.lang.Comparable seriesKey, double[][] data)
    ・dataはdouble[2][N]
    ・[0][N]:xのデータ
    ・[1][N]:yのデータ
 */
public class Chart03_00 {
  // 目次-二次元分布チャート
  A_Chart03 a_chart03;
  // 目次-Artery-JFreeChart用のライブラリ
  A_Chart00 a_LibChartSampeContents;

  public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    Random ran = new Random();
    // グラフ名
    String[] names = new String[]{"A","B","C"};
    // DefaultXYDatasetを作成する
    DefaultXYDataset dataSet = new DefaultXYDataset();
    // DefaultXYDatasetを作成する
    for (int i=0; i<names.length; i++){
      final int SIZE = 20;
      double[][] data = new double[2][SIZE];
      for (int j=0; j<SIZE; j++) {
        data[0][j] = i*4+ran.nextInt(20);
        data[1][j] = i*2+ran.nextInt(10);
      }
      dataSet.addSeries(names[i],data);
    }

    // 軸を指定する⇒上下限は自動的に判定⇒明示的に設定もできる
    // 対数軸なども指定できる
    NumberAxis yAxis = new NumberAxis();
    NumberAxis xAxis = new NumberAxis();

    // レンダラーを指定する⇒色や形を自動的に設定する
    // グラフ(A,B,C)ごとにレンダラーを設定することもできる
    DefaultXYItemRenderer renderer = new DefaultXYItemRenderer();
    // (通常は)順番がないデータなので、線は引かない.
    renderer.setBaseLinesVisible(false);

    // Plotを作成する⇒XYPlotを使用する
    XYPlot xyPlot = new XYPlot((XYDataset)dataSet,(ValueAxis)xAxis,(ValueAxis)yAxis,renderer);
    // チャートを作成する
    JFreeChart jfreeChart = new JFreeChart("XYチャート",(Plot)xyPlot);
    // チャートを表示する
    ChartFrame cFrame = new ChartFrame("XYチャート",(JFreeChart)jfreeChart);
    cFrame.pack();
    cFrame.setVisible(true);
  }
}

JFreeChart 샘플

좋은 웹페이지 즐겨찾기