我有我的第一堂课
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;
}
}
答案 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());