現在、JFreeChart
を使用して2Dグラフで3Dデータを表現しようとしています。カラーマップを使用して2Dグラフに3Dデータを表現するJFreeChart
本質的に、私はdata[i][j]
と呼ばれる2次元配列を持っています。 i
とj
は、プロットしたいところの座標をy
とx
と表します。 data[i][j]
の値は周波数値を表しています。この値はグラフで色として表したいものです。
私はと呼ばれるものをこのような何か全くわからないんだけど、それはこのようなものになります。しかし、私は問題を抱えています、今
私はXYBlockRenderer
を使用してこれを実行しようとしているがデータセットを定義します。私はDefaultXYZDataset
を使用しようとしていますが、ここでデータを定義する方法についても本当に混乱しています。
誰かがDefaultXYZDataset
を使用してそのようなタスクを実行する方法を説明できますか?
DefaultXYZDataset dataset = new DefaultXYZDataset();
Concentration.dataoutHeight = Concentration.dataout[0].length;
System.out.println(Concentration.dataoutHeight);
System.out.println(ImageProcessor.MAXCBVINT);
double[][] data = new double[3][ImageProcessor.MAXCBVINT];
for (int i = 0; i < Concentration.dataoutHeight; i++) {
for (int j = 0; j < ImageProcessor.MAXCBVINT; j++) {
data[0][j] = j;//x value
data[1][j] = i;//y value
data[2][j] = Concentration.dataout[j][i][0];//Colour
}
dataset.addSeries(i, data);
}
NumberAxis xAxis = new NumberAxis("Intensity");
xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
xAxis.setLowerMargin(0.0);
xAxis.setUpperMargin(0.0);
NumberAxis yAxis = new NumberAxis("Distance to Closest Blood Vessel (um)");
yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
yAxis.setLowerMargin(0.0);
yAxis.setUpperMargin(0.0);
XYBlockRenderer renderer = new XYBlockRenderer();
PaintScale scale = new GrayPaintScale(0, 10000.0);
renderer.setPaintScale(scale);
renderer.setBlockHeight(1);
renderer.setBlockWidth(1);
XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinesVisible(false);
plot.setRangeGridlinePaint(Color.white);
JFreeChart chart = new JFreeChart("Surface Plot", plot);
chart.removeLegend();
chart.setBackgroundPaint(Color.white);
ChartFrame frame = new ChartFrame("Surface Map - "
+ (Concentration.testing ? "TESTING using "
+ Concentration.testfile : currentFile.getName()), chart);
frame.pack();
frame.setVisible(true);
あなたが説明している問題を示す[sscce](http://sscce.org/)を提供してください。 ['XYBlockChartDemo1'](http://www.jfree.org/jfreechart/jfreechart-1.0.13-demo.jnlp)がその一例です。 – trashgod
あなたは解決策@Akibを見つけましたか? – user847988