目次 ⇒ JFreeChartサンプル
package jp.avaj.lib.chart;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
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.Plot;
import org.jfree.chart.renderer.category.ScatterRenderer;
import org.jfree.data.statistics.DefaultMultiValueCategoryDataset;
/**
■ JFreeChart-複数値チャート-UIで特定データを強調する
・複数のデータが表示されていると分かりにくいことがある。
・ArcCategoryPlotEmphasizeWinを使うと、データ選択画面が表示され、特定のデータを強調表示できる.
・強調の方法はArcEmphasizeに定義されており、以下の方法がある。
・ITEM ⇒ ポイントを大きく表示する。
・LINE ⇒ 線を太く表示する。
・BLINK ⇒ ブリンクさせる.該当データを本来の色とグレイで交互表示する。0.5秒間隔。
・本サンプルではITEMを使用する。
*/
public class Chart13_02 {
// 目次-DefaultMultiValueCategoryDatasetを利用したチャート
A_Chart13 a_Chart13;
// 目次-Artery-JFreeChart用のライブラリ
A_Chart00 a_LibChartSampeContents;
public static void main(String[] args) {
// 表示データの作成
DefaultMultiValueCategoryDataset dataSet = null;
{
final int ROW = 3;
final int COL = 4;
Random ran = new Random();
dataSet = new DefaultMultiValueCategoryDataset();
List<Double> list;
for (int row=0; row<ROW; row++) {
for (int col=0; col<COL; col++) {
list = new ArrayList<Double>();
for (int i=0; i<3; i++) {
list.add((double)ran.nextInt(100));
}
dataSet.add(list,"ROW"+row,"COL"+col);
}
}
}
// 軸の設定
CategoryAxis xAxis = new CategoryAxis("商品");
NumberAxis yAxis = new NumberAxis("売上");
// レンダラの設定
ScatterRenderer renderer = new ScatterRenderer();
// Plotの作成
CategoryPlot plot = new CategoryPlot(dataSet,xAxis,yAxis,renderer);
//
JFreeChart jfreeChart = new JFreeChart("ScatterRenderer",(Plot)plot);
ChartFrame cFrame = new ChartFrame("ScatterRenderer",(JFreeChart)jfreeChart);
cFrame.pack();
cFrame.setVisible(true);
//
// UIを生成する
new ArcCategoryPlotEmphasizeWin(cFrame,plot,ArcEmphasize.ITEM);
}
}