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