目次 ⇒ JFreeChartサンプル
package jp.avaj.lib.chart;
import java.awt.BasicStroke;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.SpiderWebPlot;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import jp.avaj.lib.algo.ArMatrix;
import jp.avaj.lib.algo.ArUtil;
/**
■ JFreeChart-レーダーチャート/SpiderWebChart-特定データの強調
*/
public class Chart06_02 {
// 目次-レーダーチャート(SpiderWebChart)
A_Chart06 a_Chart06;
// 目次-Artery-JFreeChart用のライブラリ
A_Chart00 a_LibChartSampeContents;
/** 成績のレーダーチャートを作成する */
public static void main(String[] args) {
// レーダーチャート(SpiderWebChart)にはCategoryDatasetを使用する
// CategoryDatasetの作成方法は、以下を参照
Chart01_CategoryDataset_2 categoryDataSetSample;
// ここではArMatrixからCategoryDatasetを作成する
DefaultCategoryDataset dataset;
{
ArMatrix<String,String,Integer> mat = new ArMatrix();
// Aの成績⇒理系が得意
mat.put("A","英語",70);
mat.put("A","数学",90);
mat.put("A","国語",55);
mat.put("A","理科",95);
mat.put("A","社会",45);
// Bの成績⇒文系が得意
mat.put("B","英語",100);
mat.put("B","数学",60);
mat.put("B","国語",80);
mat.put("B","理科",55);
mat.put("B","社会",70);
// Cの成績
mat.put("C","英語",70);
mat.put("C","数学",70);
mat.put("C","国語",70);
mat.put("C","理科",70);
mat.put("C","社会",70);
//
dataset = ArcDefaultCategoryDataset.create(mat,null,null);
}
// SpiderWebPlotはRendererやRendererは指定する必要がない
SpiderWebPlot plot = new SpiderWebPlot((CategoryDataset)dataset);
JFreeChart jfreeChart = new JFreeChart("成績レーダーチャート",(Plot)plot);
// チャートを表示する
ChartFrame cFrame = new ChartFrame("RadarChartFrame",(JFreeChart)jfreeChart);
cFrame.pack();
cFrame.setVisible(true);
// 特定データ(B)を強調する
{
// 目で確認するために少し休む
ArUtil.sleep(2000);
// Bデータのインデックスを取得する
// Datasetに挿入した順番でよいが、インデックスを改めて取得する方がよい
int index = dataset.getRowIndex("B");
// 線幅を太くする
plot.setSeriesOutlineStroke(index,new BasicStroke(((BasicStroke)plot.getBaseSeriesOutlineStroke()).getLineWidth()*3));
//
// 目で確認するために少し休む
ArUtil.sleep(12000);
// 元に戻す
plot.setSeriesOutlineStroke(index,null);
}
}
}