8

我正在尝试以时间(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 的“时间”列下的数据转换为某个 double 值并填充 series1,因为 add 函数只采用 double 值。一旦我将值转换为双倍,如何在 X 轴上显示时间或者是否有任何其他方法可以添加到 XYseries?

4

1 回答 1

11

使用 aorg.jfree.data.time.TimeSeries来存储值,而不是使用 anXYSeries和 a来存储TimeSeriesCollection数据集。

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

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;
}
于 2012-10-11T11:35:20.140 回答