JFreeChart-PolarChart-극좌표-특정 데이터 강조
9772 단어 JFreeChartPolarChart
package jp.avaj.lib.chart;
import java.awt.BasicStroke;
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.PolarPlot;
import org.jfree.chart.renderer.DefaultPolarItemRenderer;
import org.jfree.chart.renderer.PolarItemRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import jp.avaj.lib.algo.ArUtil;
/**
■ JFreeChart-PolarChart-極座標-特定データを強調する
・(1)データセットはXYSeriesCollectionを使う.
・(2)データには角度と値を指定する.
・角度はラジアンではなく度.
・(3)レンダラはDefaultPolarItemRenderer.
・軸は一つだけ必要で、NumberAxisを指定した.
・プロットはPolarPlotというものがあるので、これを使う.
*/
public class Chart20_01 {
// PolarChar/極座標.
A_Chart20 a_Chart20;
// 目次-Artery-JFreeChart用のライブラリ
A_Chart00 a_LibChartSampeContents;
public static void main(String[] args) {
XYSeriesCollection dataset = new XYSeriesCollection(); // (1)
XYSeries data0 = new XYSeries("data0");
data0.add(0.0D, 2.0D); // (2)
data0.add(90.0D, 13.0D);
data0.add(180.0D, 9.0D);
data0.add(270.0D, 8.0D);
dataset.addSeries(data0);
XYSeries data1 = new XYSeries("data1");
data1.add(90.0D, 0.0D);
data1.add(180.0D, 22.0D);
data1.add(250.0D, 18.0D);
data1.add(355.0D, 10.9D);
dataset.addSeries(data1);
//
DefaultPolarItemRenderer renderer = new DefaultPolarItemRenderer(); // (3)
NumberAxis radiusAxis = new NumberAxis(); //(4)
PolarPlot polarPlot = new PolarPlot((XYDataset)dataset,(ValueAxis)radiusAxis,(PolarItemRenderer)renderer);
JFreeChart jfreeChart = new JFreeChart("PolerPlot",(Plot)polarPlot);
//
ChartFrame cFrame = new ChartFrame("PolerPlot",(JFreeChart)jfreeChart);
cFrame.pack();
cFrame.setVisible(true);
// 特定データ(data1)を強調する
{
// 目で確認するために少し休む
ArUtil.sleep(2000);
// Bデータのインデックスを取得する
// Datasetに挿入した順番でよいが、インデックスを改めて取得する方がよい
int index = dataset.getSeriesIndex("data1");
// 線幅を三倍に太くする
renderer.setSeriesStroke(index,new BasicStroke(((BasicStroke)renderer.getBaseStroke()).getLineWidth()*3));
//
// 目で確認するために少し休む
ArUtil.sleep(12000);
// 元に戻す
renderer.setSeriesStroke(index,null);
}
}
}
JFreeChart 샘플
Reference
이 문제에 관하여(JFreeChart-PolarChart-극좌표-특정 데이터 강조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/artery/items/bf5e18d1260a86f08622텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)