Java jfreeChart回归线实时日轴
我试图在每半秒钟收到的一些数据上绘制一条回归线。我目前正在实时绘制数据,没有问题。线程正在读取数据,而主线程正在处理刷新图形。 数据是y轴上的一个值和x轴上的“日”(jfreeChart对象“日”) 我在线程侦听器中设置了它来计算系数,如果数据点的数量大于1,它还会在这种情况下将数据集添加到mainPlot。这是在线程侦听器中Java jfreeChart回归线实时日轴,java,date,graph,jfreechart,Java,Date,Graph,Jfreechart,我试图在每半秒钟收到的一些数据上绘制一条回归线。我目前正在实时绘制数据,没有问题。线程正在读取数据,而主线程正在处理刷新图形。 数据是y轴上的一个值和x轴上的“日”(jfreeChart对象“日”) 我在线程侦听器中设置了它来计算系数,如果数据点的数量大于1,它还会在这种情况下将数据集添加到mainPlot。这是在线程侦听器中 if (++count > 1){ double[] coefficients = Regression.getOLSRegression(Time
if (++count > 1){
double[] coefficients = Regression.getOLSRegression(TimeSeriesCollection, 0);
mainPlot.setDataset(1, regressionData);
}
这在线程侦听器之外,在图形的设置旁边。通知中的数据来自TimePeriesCollection。它有点像绘图,但把所有的数据都贴在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”对象,并将其绘制在图形上的正确位置。
有人做到了吗?当我“直接”绘制数据时,也就是说,在不尝试对其进行回归的情况下,它只绘制了一个漂亮的折线图。我使用TimeSeries图表绘制数据和回归线。因此,这两个图表都是由
ChartFactory.createTimeSeriesChart(…)创建的
你不能扔给我一根稍大一点的骨头,可以吗?我试图为其绘制回归线的数据在timeSeriesCollection中,因此是timeSeries。因此,根据你的消息,听起来好像有某种类型的图表我应该在其上绘制???我的图表是:JFreeChart chart=new JFreeChart(stockSymbol,null,mainPlot,false);ChartPanel ChartPanel=new ChartPanel(图表);ChartPanel.setPreferredSize(新维度(600300));
感谢创建时间序列图表的简单方法是:ChartFactory.createTimeSeriesChart(“,”,”,dataset,false,false);
wheredataset=new TimeSeriesCollection()
。然后将主图形和回归线添加到数据集中,如dataset.addSeries(timeSeries)
。然后需要填充timeSeries(构造函数:新timeSeries(标题)
)。将TimeSeriesDataItem
添加到timeSeries。要构建回归线,请使用公式创建新的timeSeries和新点:y=a+bx
,其中a
和b
是您的系数。