LoginSignup
0
0

More than 3 years have passed since last update.

JFreeChart-バーチャート-CategoryDatasetの作成-ArMatrixから作成する-続き

Posted at

目次 ⇒ JFreeChartサンプル

package jp.avaj.lib.chart;

import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.util.SortOrder;

import jp.avaj.lib.algo.ArMatrix;
import jp.avaj.lib.def.ArSortDir;

/**
■ JFreeChart-バーチャート-CategoryDatasetの作成-ArMatrixから作成する
   ・key0はrowKey,key1をcolumnキーとする
   ・値はArMatrixの値オブジェクト(Number)

 */
public class Chart07_01 {
  // 目次-バーチャート(BarChart)
  A_Chart07 a_Chart07;
  // 目次-Artery-JFreeChart用のライブラリ
  A_Chart00 a_LibChartSampeContents;

  public static void main(String[] args) {
    //
    // DefaultCategoryDatasetを使用する
    // DefaultCategoryDatasetの作成機能は、ArcDefaultCategoryDatasetにまとめられている
    // DefaultCategoryDatasetは、いくつかのデータ構造から作成できる
    // ここではArMatrixから作成する.詳細はArcDefaultCategoryDatasetの解説を参照.
    DefaultCategoryDataset catDataSet;
    {
      // 元データのArMatrixの作成
      ArMatrix<String,String,Integer> mat = new ArMatrix<String,String,Integer>();
      //
      mat.put("2009","民進",54);
      mat.put("2009","自民",38);
      mat.put("2009","公明",23);
      mat.put("2009","共産",8);
      mat.put("2009","無所属",4);
      mat.put("2009","ネット",2);
      //
      mat.put("2013","自民",59);
      mat.put("2013","公明",23);
      mat.put("2013","共産",17);
      mat.put("2013","民進",15);
      mat.put("2013","みんな",7);
      mat.put("2013","ネット",3);
      mat.put("2013","維新",2);
      mat.put("2013","無所属",1);
      //
      mat.put("2017","都民",55);
      mat.put("2017","自民",23);
      mat.put("2017","公明",23);
      mat.put("2017","共産",19);
      mat.put("2017","民進",5);
      mat.put("2017","ネット",1);
      mat.put("2017","その他",1);

      // ArMatrixをDefaultCategoryDatasetに変換する
      // 選挙年と政党名を昇順にソートしてDefaultCategoryDatasetを作成する
      catDataSet = ArcDefaultCategoryDataset.create(mat,ArSortDir.ASCEND,ArSortDir.ASCEND);
    }
    //
    CategoryAxis xAxis = new CategoryAxis("政党");
    NumberAxis yAxis = new NumberAxis("議席数");
    BarRenderer renderer = new BarRenderer();
    CategoryPlot catPlot = new CategoryPlot(catDataSet,xAxis,yAxis,(CategoryItemRenderer)renderer);
    catPlot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    catPlot.setColumnRenderingOrder(SortOrder.ASCENDING);
    catPlot.setRowRenderingOrder(SortOrder.ASCENDING);
    //catPlot.setOrientation(PlotOrientation.HORIZONTAL); ⇒ 横向きに表示する
    JFreeChart jfreeChart = new JFreeChart("都議会議員選挙",(Plot)catPlot);
    //
    ChartFrame cFrame = new ChartFrame("都議会議員選挙",(JFreeChart)jfreeChart);
    cFrame.pack();
    cFrame.setVisible(true);
  }
}
//-結果------------------------------------------------
//-----------------------------------------------------
//Arteryライブラリは以下よりダウンロード可能
//Vector⇒ダウンロード-Windows⇒プログラミング⇒Java言語

無題.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