0
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-XYインターヴァルチャート-平面上に四角の領域を描く-DefaultIntervalXYDatasetを使用

Posted at

目次 ⇒ JFreeChartサンプル

package jp.avaj.lib.chart;

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.XYBarRenderer;
import org.jfree.data.xy.DefaultIntervalXYDataset;

/**
■ JFreeChart-XYインターヴァルチャート-平面上に四角の領域を描く-DefaultIntervalXYDatasetを使用

・XYインターヴァルチャートは平面上に複数の四角が描かれるもの.
  ・例えば地図上に建物面積に応じた四角が表示されているようなチャートである.
  ・DatasetはDefaultIntervalXYDatasetを使用する.
  ・Rendererには、XYBarRendererを使用する.
・DefaultIntervalXYDataset
  ・DefaultIntervalXYDatasetはdouble[6][N]のデータを要求する.その内容は次の通り
    ・[0][N]:x値
    ・[1][N]:xStart値
    ・[2][N]:xEnd値
    ・[3][N]:y値
    ・[4][N]:yStart値
    ・[5][N]:yEnd値
  ・"start","end"という名称に具体的な意味はない.単に名称.
  ・xStart,xEnd,yStart,yEndで四角領域が表示される.
  ・x値、y値は表示には使用されない.CrossHairValueとして使用される.
  ・注意、上記のことはAPIには書かれておらず、ソースを見て、実際に使って分かったことなので注意.

 */
public class Chart14_00 {
  // 目次-インターヴァルチャート-IntervalChart-DefaultIntervalXYDatasetを使用したもの
  A_Chart14 a_Chart14;
  // 目次-Artery-JFreeChart用のライブラリ
  A_Chart00 a_LibChartSampeContents;

  public static void main(String[] args) {
    // DefaultIntervalXYDatasetの生成
    DefaultIntervalXYDataset ds;
    {
      ds = new DefaultIntervalXYDataset();
      double[][] values = new double[][] {
        new double[]{2.0D,3.0D,4.5D},  // x
        new double[]{1.9D,2.9D,4.4D},  // xStart
        new double[]{2.2D,3.1D,4.6D},  // xEnd

        new double[]{2.5D,3.5D,4.5D},  // y
        new double[]{2.4D,2.5D,3.5D},  // yStart
        new double[]{2.7D,4.0D,4.0D},  // yEnd
      };
      ds.addSeries("A",values);
      values = new double[][] {
        new double[]{0.8D,2.5D,5.0D},  // x
        new double[]{0.9D,2.6D,4.9D},  // xStart
        new double[]{1.2D,2.7D,5.1D},  // xEnd

        new double[]{4.5D,3.5D,3.1D},  // y
        new double[]{4.4D,3.5D,3.0D},  // yStart
        new double[]{4.7D,3.0D,3.2D},  // yEnd
      };
      ds.addSeries("B",values);
    }
    //
    XYBarRenderer  renderer = new XYBarRenderer ();
    renderer.setUseYInterval(true); // これを指定しないと単なる縦棒になってしまう⇒Xには同様の指定はない
    renderer.setShadowVisible(false); // 標準はtrue⇒影が表示される
    // Plotを作成して画面を表示する
    XYPlot plot = new XYPlot(ds,new NumberAxis(),new NumberAxis(),renderer);
    JFreeChart jfreeChart = new JFreeChart("XYインターヴァルチャート",(Plot)plot);
    ChartFrame cFrame = new ChartFrame("XYインターヴァルチャート",(JFreeChart)jfreeChart);
    cFrame.pack();
    cFrame.setVisible(true);
  }
}

無題.png

0
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
0
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?