java 如何使用 ArrayList 制作 XY 折线图
How to use an ArrayList in making an XY line chart in java
我有一个 ArrayList
可以从用户输入中获取数据,并且我创建了一个按钮,当它被激活时会启动一个 XY 线图。我遇到的问题是我不断收到错误,我的 LineGraph
不会创建。
我真的不知道如何从我的 ArrayList
中获取数据并将其放入 XYSeries
。
Iterator it = dataXY.iterator();
XYSeries p1 = new XYSeries("XY");
while( it.hasNext()) {
p1.add((XYDataItem) it.next());
}
XYSeriesCollection xydata = new XYSeriesCollection();
xydata.addSeries(p1);
JFreeChart lineChart = ChartFactory.createXYLineChart("XY chart", "X", "Y", xydata, PlotOrientation.HORIZONTAL, true, true, false);
lineChart.setBackgroundPaint(Color.WHITE);
final XYPlot plot = lineChart.getXYPlot();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesPaint(0, Color.BLACK);
renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );
plot.setRenderer( renderer );
plot.setBackgroundPaint(Color.WHITE);
ChartFrame frame = new ChartFrame ("XY Line Graph", lineChart);
frame.setVisible(true);
frame.setSize(700,500);
所有这些代码都在我的 "create a graph" 按钮的动作事件中。非常感谢任何有关如何制作此图表的帮助。
最后我什至不需要转换为数组,尽管我设法这样做了:
// converting arraylist to array
double [][] p1 = new double[dataXY.size()][dataXY.size()];
for (int i=0; i<dataXY.size(); i++) {
int x = dataXY.get(i).getX(); int y = dataXY.get(i).getY();
p1[i][0] = x;
p1[i][1] = y;
}
无论如何,我所做的是使用 XYSeries 并使用 for 循环将我所有的值添加到系列中,如下所示:
XYSeriesCollection ds = new XYSeriesCollection();
XYSeries s1 = new XYSeries("XY data");
for (int i=0; i<dataXY.size(); i++) {
int x = dataXY.get(i).getX(); int y = dataXY.get(i).getY();
s1.add(y, x);
}
ds.addSeries(s1);
我有一个 ArrayList
可以从用户输入中获取数据,并且我创建了一个按钮,当它被激活时会启动一个 XY 线图。我遇到的问题是我不断收到错误,我的 LineGraph
不会创建。
我真的不知道如何从我的 ArrayList
中获取数据并将其放入 XYSeries
。
Iterator it = dataXY.iterator();
XYSeries p1 = new XYSeries("XY");
while( it.hasNext()) {
p1.add((XYDataItem) it.next());
}
XYSeriesCollection xydata = new XYSeriesCollection();
xydata.addSeries(p1);
JFreeChart lineChart = ChartFactory.createXYLineChart("XY chart", "X", "Y", xydata, PlotOrientation.HORIZONTAL, true, true, false);
lineChart.setBackgroundPaint(Color.WHITE);
final XYPlot plot = lineChart.getXYPlot();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesPaint(0, Color.BLACK);
renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );
plot.setRenderer( renderer );
plot.setBackgroundPaint(Color.WHITE);
ChartFrame frame = new ChartFrame ("XY Line Graph", lineChart);
frame.setVisible(true);
frame.setSize(700,500);
所有这些代码都在我的 "create a graph" 按钮的动作事件中。非常感谢任何有关如何制作此图表的帮助。
最后我什至不需要转换为数组,尽管我设法这样做了:
// converting arraylist to array
double [][] p1 = new double[dataXY.size()][dataXY.size()];
for (int i=0; i<dataXY.size(); i++) {
int x = dataXY.get(i).getX(); int y = dataXY.get(i).getY();
p1[i][0] = x;
p1[i][1] = y;
}
无论如何,我所做的是使用 XYSeries 并使用 for 循环将我所有的值添加到系列中,如下所示:
XYSeriesCollection ds = new XYSeriesCollection();
XYSeries s1 = new XYSeries("XY data");
for (int i=0; i<dataXY.size(); i++) {
int x = dataXY.get(i).getX(); int y = dataXY.get(i).getY();
s1.add(y, x);
}
ds.addSeries(s1);