1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JFreeChart-バブルチャート-UIで特定データを強調する

Posted at

目次 ⇒ JFreeChartサンプル


package jp.avaj.lib.chart;

import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYBubbleRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.data.xy.XYDataset;

/**
■ JFreeChart-バブルチャート-UIで特定データを強調する

・複数のデータが表示されていると分かりにくいことがある。
・ArcXYPlotEmphasizeWinを使うと、データ選択画面が表示され、特定のデータを強調表示できる.
・強調の方法はArcEmphasizeに定義されており、以下の方法がある。
  ・ITEM ⇒ ポイントを大きく表示する。
  ・LINE ⇒ 線を太く表示する。
  ・BLINK ⇒ ブリンクさせる.該当データを本来の色とグレイで交互表示する。0.5秒ごと。
・本サンプルはバブルチャートなので、BLINKが適当である。


・参考
  ・DefaultXYZDatasetは以下のメソッドを持っている.
    addSeries(java.lang.Comparable seriesKey, double[][] data)
    dataはdouble[3][N]は次の構造.
       [0][N]:x値
       [1][N]:y値
       [2][N]:z値
 */
public class Chart10_03 {
  // 目次-バブルチャート(BubbleChart)
  A_Chart10 a_Chart10;
  // 目次-Artery-JFreeChart用のライブラリ
  A_Chart00 a_LibChartSampeContents;

  public static void main(String[] args) {
    // 表示データの作成
    DefaultXYZDataset dataSet = new DefaultXYZDataset();
    {
      // xの値
      double[] xValues = { 2.1D, 2.3D, 2.3D, 2.2D, 2.2D, 1.8D, 1.8D, 1.9D, 2.3D, 3.8D};
      // yの値
      double[] yValues = {14.1D,11.1D,10.0D, 8.0D, 8.1D, 8.4D, 5.4D, 4.1D, 4.1D,25.0D};
      // Zの値(円の大きさ)
      double[] zValues = { 2.4D, 2.7D, 2.7D, 2.2D, 2.2D, 2.2D, 2.1D, 2.2D, 1.6D, 4.0D};
      double[][] arrayOfDouble = {xValues,yValues,zValues};
      dataSet.addSeries("A",arrayOfDouble);
    }
    {
      // xの値
      double[] xValues = { 3.1D, 0.3D, 1.7D, 0.2D, 1.2D, 0.8D, 0.8D, 0.9D, 0.3D, 2.8D};
      // yの値
      double[] yValues = {20.1D,11.1D,10.0D, 8.0D, 8.1D, 8.4D, 5.4D, 4.1D, 4.1D,20.0D};
      // Zの値(円の大きさ)
      double[] zValues = { 2.4D, 2.7D, 2.7D ,2.2D, 2.2D, 2.2D, 2.1D, 2.2D, 1.6D, 4.0D};
      double[][] arrayOfDouble = {xValues,yValues,zValues};
      dataSet.addSeries("B",arrayOfDouble);
    }
    // レンダラの指定⇒バブルチャート用のレンダラがある、引数は下記のものがあるがSCALE_ON_RANGE_AXISを指定すること
    //  (one of: SCALE_ON_BOTH_AXES, SCALE_ON_DOMAIN_AXIS, SCALE_ON_RANGE_AXIS).
    XYBubbleRenderer renderer = new XYBubbleRenderer(XYBubbleRenderer.SCALE_ON_RANGE_AXIS);
    // X軸,はみ出したりしないためにマージンを設定する、注、Rangeでもよい
    // ⇒ LowerMarginは効かないみたい
    NumberAxis xAxis = new NumberAxis();
    xAxis.setLowerMargin(0.1D);
    xAxis.setUpperMargin(0.1D);
    // Y軸,はみ出したりしないためにマージンを設定する、注、Rangeでもよい
    // ⇒ LowerMarginは効かないみたい
    NumberAxis yAxis = new NumberAxis();
    yAxis.setLowerMargin(0.1D);
    yAxis.setUpperMargin(0.1D);
    // PlotはXYPlotを使う
    XYPlot xyPlot = new XYPlot((XYDataset)dataSet,(ValueAxis)xAxis,(ValueAxis)yAxis,renderer);
    JFreeChart jfreeChart = new JFreeChart("BubbleChart",(Plot)xyPlot);
    //
    ChartFrame cFrame = new ChartFrame("BubbleChart",(JFreeChart)jfreeChart);
    cFrame.pack();
    cFrame.setVisible(true);

    // UI画面を表示する
    new ArcXYPlotEmphasizeWin(cFrame,xyPlot,ArcEmphasize.BLINK);
  }
}


無題-1.png

無題.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?