이차원 분포도/XYSeries Collection

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

import java.util.Random;

import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

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

 */
public class Chart15_00 {

  public static void main(String[] args) {
    // 表示データの作成
    XYSeriesCollection collection = createXYDataset();
    // レンダラの指定
    // 最初の引数はラインを引くかどうか⇒今回はラインは引かない
    // 次の引数はデータの場所に形を表示するか否か⇒今回は形を表示する.
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(false,true);
    // 軸は両方ともNumberAxisにする
    NumberAxis xAxis = new NumberAxis();
    NumberAxis yAxis = new NumberAxis();
    // Plotの作成
    XYPlot xyPlot = new XYPlot((XYDataset)collection,xAxis,yAxis,(XYItemRenderer)renderer);
    // 画面表示
    JFreeChart jfreeChart = new JFreeChart("XYPlot",(Plot)xyPlot);
    ChartFrame cFrame = new ChartFrame("XYPlot",(JFreeChart)jfreeChart);  // (1)
    cFrame.pack();
    cFrame.setVisible(true);
  }

  public static XYSeriesCollection createXYDataset() {
    XYSeriesCollection xySeriesCollection = new XYSeriesCollection();
    Random ran = new Random();
    for (int series = 0; series<5; series++) {
      XYSeries xySeries = new XYSeries("data-" + series);
      for (int item = 0; item<20; item++) {
        double x = ran.nextDouble()*10;
        double y = x+ran.nextDouble()*5;
        xySeries.add(x,y);
      }
      xySeriesCollection.addSeries(xySeries);
    }
    return xySeriesCollection;
  }
}

JFreeChart 샘플

좋은 웹페이지 즐겨찾기