如何使用Jfreechart在折线图的X轴上显示日期

时间:2012-10-11 10:57:38

标签: java graph dataset jfreechart

我试图将带有时间的线图(HH:MM:SS)显示为X轴和数字(作为Y轴)。 “时间”列的读取数据格式为HH:MM:SS。 我正在填充构建图表的数据集的方式如下

for (Row row : sheet)
{
    Double sar_Val = poiGetCellValue(sar);
    Double date_val = poiGetCellValue(date);

    if(sar_Val != null && date_val != null)
    {
        series1.add(date_val,sar_Val);
    }
    dataset.addSeries(series1);
}

//上面代码中的poiGetCellValue根据数据类型

返回一个double

问题是我必须将格式为HH:MM:SS的“Time”列下的数据转换为某个double值并填充series1,因为add函数只接受double值。一旦我将值转换为double,如何在X轴中显示时间 或者是否有任何其他方法可以添加到XY系列中?

1 个答案:

答案 0 :(得分:10)

使用org.jfree.data.time.TimeSeries存储值,而不是数据集的XYSeriesTimeSeriesCollection

这将允许您添加RegularTimePeriod和一个双倍而不是两个双打。 RegularTimePeriodDay实现,因此最终代码如下所示:

private XYDataset createDataset() {
    TimeSeries series1 = new TimeSeries("Data");
    Date date = new Date();
    series1.add(new Day(date),46.6);
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series1);
    return dataset;
}