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


目次 ⇒ [JFreeChartサンプル](https://qiita.com/artery/items/3e9c63e5c14a9e965c97)

```java
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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278568/111d885e-bc93-cbfd-0748-0b0b9b41d361.png)