我试图在每半秒钟出现的一些数据上绘制回归线。我目前正在实时绘制数据没问题。线程正在读取数据,主线程正在处理刷新图形。 数据是y轴上的值,x轴上是“Day”(jfreeChart对象“Day”)。
我已经在线程监听器中设置了它,如果数据点的数量大于1,则计算系数,然后在此条件下将dataSet添加到mainPlot。所以这是在线程监听器
中if (++count > 1){
double[] coefficients = Regression.getOLSRegression(TimeSeriesCollection, 0);
mainPlot.setDataset(1, regressionData);
}
这是在线程监听器之外,在图表的设置旁边。数据,通知来自timeSeriesCollection。它确实是一种情节,但是在1970年将所有数据都包含在内,这意味着其余的数据(发生在2012年)是在右边聚集的。
Function2D curve = new LineFunction2D(coefficients[0], coefficients[1]);
XYDataset regressionData = DatasetUtilities.sampleFunction2D(curve,
2.0, 11.0, 100, "Fitted Regression Line");
XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(true,
false);
renderer2.setSeriesPaint(0, Color.blue);
mainPlot.setRenderer(1, renderer2);
问题是如何让它理解TimeSeries x轴数据是“Day”对象并将其绘制在图形上的正确位置。 有没有人设法做到这一点?当我直接绘制数据时,即没有尝试对其进行回归,只需绘制一个线条图就可以很好地绘制。
答案 0 :(得分:0)
我使用TimeSeries Chart获取数据和回归线。因此,这两个图表都是由ChartFactory.createTimeSeriesChart(...)