如何在另一个类中的函数中绘制图形上的点,该类返回一个填充了值的数组以进行绘制

时间:2013-02-11 16:24:37

标签: java jfreechart

我有我的第一堂课

public class GetResults{

public double[] tableOfresults() {
double[] outputArray = new double[100];
double time;
double results

for(time = 0; time<outputArray.length; i++) {
  //Some values are calculated and then stored in an array as below
  outputArray[(int)Time] = Results
}
return outputarray;

这个类只是计算一些我想在图表上绘制的值并将它们存储在数组中。

下一课是实际绘制我的图表上的点的内容。我不确定一个简单的方法来获取点在我的X轴上绘制,这是时间的值(时间是数组索引0,1,2,3等)和我的Y轴是我的结果。我目前不得不把所有的职位都放在自己身上。

public class graph{
GetResults gr = new GetResuts();
public XYSeries inputOutputGraph() {
    XYSeries graph = new XYSeries("My graph");      
    XYDataset xyDataset = new XYSeriesCollection(graph);

    graph.add(1, gr.tableOfResults()[1]); 
    graph.add(2, gr.tableOfResults()[2]);
    graph.add(3, gr.tableOfResults()[3]);
    graph.add(4, gr.tableOfResults()[4]);

这里我必须自己添加值(我有1000个要做)。我需要看起来像这个graph.add(gr.tableOfResults()[gr.Time],gr.tableOfResults()[gr.Results]); 因此,当我的时间上升0,1,2,3时,它将绘制我的结果,该结果存储在该位置的索引0,1,2,3处。我怎么能这样做?我已经尝试了那个代码^^并且我得到了一个数组索引超出了界限,我的数组大小设置为

    JFreeChart chart = ChartFactory.createXYLineChart(
        "Graph", "Time", "results",
        xyDataset, PlotOrientation.VERTICAL, true, true, false);
    ChartFrame graphFrame = new ChartFrame("XYLine Chart", chart);
    graphFrame.setVisible(true);
    graphFrame.setSize(300, 300);
    return graph;
}

}

1 个答案:

答案 0 :(得分:0)

您可以直接将计算值放在XYSeries中,然后让GetResults使用返回该系列的方法。

class GetResults {

    public XYSeries getSeries() {
        XYSeries series = new XYSeries("Series");
        for (int i = 0; i < 10; i++) {
            series.add(i, Math.pow(2, i));
        }
        return series;
    }
}

以下是您在此example中使用getSeries()的方法。

dataset.addSeries(new GetResults().getSeries());

IMAGE