如何使用JFreeChart绘制数组生成的值

时间:2013-02-05 22:24:55

标签: java jfreechart

我有一个函数可以产生一个双倍的数组,大小达到数组的大小。我很想知道的是我如何使用XYLineChart绘制这些值?我不确定如何将这些双打放入正确的格式,以便可以绘制它们。如何将double[]变量更改为XYSeries将接受的合适格式,然后进行绘图。我的代码清单如下。

public XYSeries inputOutputGraph() {
    XYSeries graph = new XYSeries();
    XYDataset xyDataset = new XYSeriesCollection(graph);
    graph.add(valuesToPlot.outputArray); //This line here is the issue
    JFreeChart chart = ChartFactory.createXYLineChart(
            " Array values", "Time", "values",
            xyDataset, PlotOrientation.VERTICAL, true, true, false);
    ChartFrame graphFrame = new ChartFrame("XYLine Chart", chart);
    graphFrame.setVisible(true);
    graphFrame.setSize(300, 300); 
    return graph;
}   

这是我收到的错误消息:

  

没有为add(double [])找到合适的方法       方法org.jfree.data.xy.XYSeries.add(org.jfree.data.xy.XYDataItem,boolean)   不适用

(实际和正式的参数列表长度不同)

1 个答案:

答案 0 :(得分:2)

查看docs for XYSeries。编译错误表明,没有add方法来处理double输入数据数组。

顾名思义XYSeries由一系列X&组成。 Y坐标。你的双数组会建议你只有一组点,可能是 Y 坐标。

如果是这种情况,您可以将数组从1D更改为大小为 n X的2维数组.2。将数组的第一列和第二列用于X& Y分别协调。 E.g。

double[][] xyValues = new double[100][2];

然后,要添加,您可以这样做:

for (int i = 0; i < xyValues.length; i++) {
   graph.add(xyValues[i][0], xyValues[i][0]);
}