Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jfreeChart回归线实时日轴_Java_Date_Graph_Jfreechart - Fatal编程技术网

Java jfreeChart回归线实时日轴

Java jfreeChart回归线实时日轴,java,date,graph,jfreechart,Java,Date,Graph,Jfreechart,我试图在每半秒钟收到的一些数据上绘制一条回归线。我目前正在实时绘制数据,没有问题。线程正在读取数据,而主线程正在处理刷新图形。 数据是y轴上的一个值和x轴上的“日”(jfreeChart对象“日”) 我在线程侦听器中设置了它来计算系数,如果数据点的数量大于1,它还会在这种情况下将数据集添加到mainPlot。这是在线程侦听器中 if (++count > 1){ double[] coefficients = Regression.getOLSRegression(Time

我试图在每半秒钟收到的一些数据上绘制一条回归线。我目前正在实时绘制数据,没有问题。线程正在读取数据,而主线程正在处理刷新图形。 数据是y轴上的一个值和x轴上的“日”(jfreeChart对象“日”)

我在线程侦听器中设置了它来计算系数,如果数据点的数量大于1,它还会在这种情况下将数据集添加到mainPlot。这是在线程侦听器中

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);
where
dataset=new TimeSeriesCollection()
。然后将主图形和回归线添加到数据集中,如
dataset.addSeries(timeSeries)
。然后需要填充timeSeries(构造函数:
新timeSeries(标题)
)。将
TimeSeriesDataItem
添加到timeSeries。要构建回归线,请使用公式创建新的timeSeries和新点:
y=a+bx
,其中
a
b
是您的
系数。