问题描述
这是我使用Java的第一个月,所以我提前为我的愚蠢问题表示歉意.我正在尝试使用Jfreechart制作一个简单的程序.我想在散点图上显示我的2D数组.这是代码:
This is my First Month with Java, so I apologize for my stupid question in advance. I'm trying to make a simple program using Jfreechart. I want to display my 2D array on the scatter plot.here is the code:
package myappthatusesjfreechart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.general.DefaultPieDataset;
public class MyAppThatUsesJFreeChart {
public static void main(String[] args) {
// create a dataset...
int[][] a2 = new int[10][5];
// print array in rectangular form
for (int r = 0; r < a2.length; r++) {
for (int c = 0; c < a2[r].length; c++) {
System.out.print(" " + a2[r][c]);
}
System.out.println("");
}
// create a chart...
JFreeChart chart = ChartFactory.createScatterPlot(
"Scatter Plot", // chart title
"X", // x axis label
"Y", // y axis label
a2, // data ***-----PROBLEM------***
PlotOrientation.VERTICAL,
true, // include legend
true, // tooltips
false // urls
);
// create and display a frame...
ChartFrame frame = new ChartFrame("First", chart);
frame.pack();
frame.setVisible(true);
}
}
; ChartFactory.createScatterPlot;不允许我传递2D数组,我想问问有什么办法可以做到这一点.
The ;ChartFactory.createScatterPlot; is not allowing me to pass the 2d array, I want to ask is there any way that i can do it.
推荐答案
createScatterPlot()
方法需要 XYDataset
,例如XYSeriesCollection
.有使用XYSeriesCollection
此处和.
The createScatterPlot()
method expects an XYDataset
, such as XYSeriesCollection
. There are examples using XYSeriesCollection
here and here.
附录:这是一个更适合散点图的示例;只需在工厂调用中将a2
替换为createDataset()
.
Addendum: Here's an example more suited to a scatter plot; just replace a2
with createDataset()
in the factory call.
private static final Random r = new Random();
private static XYDataset createDataset() {
XYSeriesCollection result = new XYSeriesCollection();
XYSeries series = new XYSeries("Random");
for (int i = 0; i <= 100; i++) {
double x = r.nextDouble();
double y = r.nextDouble();
series.add(x, y);
}
result.addSeries(series);
return result;
}
这篇关于使用2d数组和JfreeChart制作散点图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!