0
我想繪製一個迴歸線上的一些數據,每半秒進來一次。我目前正在實時繪製數據沒有問題。數據正在被線程讀取,主線程正在處理刷新圖形。 數據是x軸上的一個值,在x軸上是「Day」(jfreeChart對象「Day」)。jfreeChart迴歸線實時日軸
我已經在線程監聽器中設置它來計算係數,如果數據點的數量大於1,它也會在此條件下將數據集添加到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軸數據是「日」對象並將其繪製在圖上的正確位置。 有沒有人設法做到這一點?當我繪製數據「直線上升,即沒有試圖做它的迴歸,只是一個線圖它美麗的曲線。
你不能給我一個稍微大一點的骨頭嗎?我試圖在timeSeriesCollection中繪製IS的迴歸線,因此是一個timeSeries。因此,通過你的消息,這聽起來像有一個特定類型的圖表,我應該繪製它???我的圖表是: 'JFreeChart圖表=新的JFreeChart(stockSymbol,NULL,mainPlot,FALSE); \t \t ChartPanel chartPanel =新的ChartPanel(圖表); \t \t chartPanel.setPreferredSize(新尺寸(600,300));' 感謝 – amlwwalker
最簡單的方法是如何創建的TimeSeries圖表:'ChartFactory.createTimeSeriesChart( 「」, 「」, 「」,\t \t \t數據集,假,false,false);'where dataset = new TimeSeriesCollection()'。然後,將主圖形和迴歸線添加到數據集,如'dataset.addSeries(timeSeries)'。你需要填寫你的timeSeries(構造函數:'新的TimeSeries(title)')。將'TimeSeriesDataItem'添加到timeSeries。 – Alex
要建立迴歸線,使用公式創建新的timeSeries和新點:'y = a + bx'其中'a'和'b'是您的'係數'。 – Alex