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);