我正在尝试使用以下属性绘制步骤图: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轴时间戳吗?
看起来x轴是格式化为日期的一种解决方法是提供qazxsw poi
在创建NumberFormatOverride
之后添加此代码:
chart
然后你应该得到这个图表:
FYI,每当迭代Map而不是遍历keySet()然后获取每个键的值时,都使用entrySet()。