绘图时间(以毫秒为单位) - JFreeChart(步骤图表)

问题描述 投票:0回答:2

我正在尝试使用以下属性绘制步骤图:x轴:时间(ms)[实际数据包含此值作为双精度值] y轴:另一个值存储为整数。

我正在填写数据集如下:

private XYSeries populateStepChartDataSet(HashMap<Double, Integer> dataGrid){
    XYSeries xySeries = new XYSeries("Step Plot", true, true);

    if(dataGrid != null){
        for (Double timeStamp : dataGrid.keySet()) {
            xySeries.add(timeStamp, dataGrid.get(timeStamp));
        }
    }

    return xySeries;
}

我创建情节的部分如下:

        final XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(populateStepChartDataSet(dspDataGrid));

        final JFreeChart chart = ChartFactory.createXYStepChart(
            title,
            xAxisLabel, yAxisLabel,
            dataset,
            PlotOrientation.VERTICAL,
            true,   // legend
            true,   // tooltips
            false   // urls
        );

我期望的是在x轴上以毫秒为单位显示时间的图,但是这个值被转换为一些奇怪的时间。这是情节的样子

有人可以帮我拿回ms格式的x轴时间戳吗?

jfreechart
2个回答
2
投票

看起来x轴是格式化为日期的一种解决方法是提供qazxsw poi

在创建NumberFormatOverride之后添加此代码:

chart

然后你应该得到这个图表:


1
投票

FYI,每当迭代Map而不是遍历keySet()然后获取每个键的值时,都使用entrySet()。

© www.soinside.com 2019 - 2024. All rights reserved.