Java 如何在2天内创建具有实时DateAxis的动态图表

Java 如何在2天内创建具有实时DateAxis的动态图表,java,jfreechart,Java,Jfreechart,我正在用JfreeChart制作一个动态图表来显示烤箱记录的温度。 这些值每2秒记录一次,并存储在一个数据库中,然后我提取该数据库并将其显示在我的动态图表上。 烤箱一直在运行,目标是能够看到温度是否出现峰值(注意,实际上有多个烤箱) 我的工作主要是围绕垃圾神的回应和其他主题 以下是我的代码的简化版本: public test(final String title) { super(title); final DynamicTimeSeriesCollection dat

我正在用JfreeChart制作一个动态图表来显示烤箱记录的温度。 这些值每2秒记录一次,并存储在一个数据库中,然后我提取该数据库并将其显示在我的动态图表上。 烤箱一直在运行,目标是能够看到温度是否出现峰值(注意,实际上有多个烤箱)

我的工作主要是围绕垃圾神的回应和其他主题

以下是我的代码的简化版本:

public test(final String title) {
    super(title);
    
    final DynamicTimeSeriesCollection dataset =
            new DynamicTimeSeriesCollection(3, 10, new Second()); // 1
    
    dataset.setTimeBase(new Second(new Date()));
          
[...]

private JFreeChart createChart(final XYDataset dataset) {
    final JFreeChart result = ChartFactory.createTimeSeriesChart(
        TITLE, "hh:mm:ss", "°C", dataset, true, true, false);
    
   final XYPlot plot = result.getXYPlot();
    ValueAxis domain = plot.getDomainAxis();
    domain.setAutoRange(true);
    ValueAxis range = plot.getRangeAxis();
    range.setRange(-MINMAX, MINMAX);
    
    DateAxis axis = (DateAxis) plot.getDomainAxis();
    axis.setFixedAutoRange(10000);                  // 2 
    return result;
}
现在,我有几点我不理解。 首先,如文档中所述

public dynamicMeseries集合(int n系列,int n组件,RegularTimePeriod时间样本)参数:n系列-系列数,n组件-每个系列的项目数,时间样本-时间段样本。

问题是,当我在代码中将nMoments设置为10时,显示的时间很好,这意味着它非常接近我的计算机上显示的实际时间,但我离要监视的2天时间段很远,因为它只显示最后10项。但是当我增加nMoments(每个系列的项目数)时,显示的时间不是“真实”的时间,如果我增加太多,它甚至不会加载

我只是希望能够有一个足够长的DateAxis,这样我就可以看到我2天前得到的值,但以一种动态的方式(一个2天周期的FIFO),但我还需要DateAxis足够精确

我主要是玩//1和//2中的值,但我不能让它像我想的那样工作,我也不知道如何使用这两个值。我设法设置了//2,这样我就有了2天的时间范围,但是数据仍然是10个项目的FIFO,正如我所说的,我觉得当我增加这个限制的时候时机不对

我也考虑过使用TimePeriesCollection,但我没有正确地使用它来实现某些功能。我是否需要对此进行更深入的挖掘,或者我是否可以通过DynamicMiseriesCollection实现我想要的


任何帮助都将不胜感激。

我通过使用
TimesPeriesCollection
解决了我的问题,而不是垃圾神在评论中提到的
DynamicMiseriesCollection
。以这篇文章为例。

DynamicMiseriesCollection
设计用于快速显示数据上的窄窗口<代码>时间体验集合是一个更好的选择;放大后,您可以轻松发现尖刺;放大你的选择。这是正确的方法;我们可以看到一个相关的例子。