Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

目次 ⇒ 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

artery
キム・ベイシンガー
https://ameblo.jp/artery3000/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away