1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

目次 ⇒ JFreeChartサンプル

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);
  }
}

無題.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?