我有一个 TimeSeries 图表,显示每个日期的一些值,并且有两个系列显示为两条不同的线。问题是有时一个系列不包含某些特定日期的值。在那种情况下,我假设这条线将从本系列的前一点继续到下一点。不幸的是,它在图表上无法正常工作,看起来有些东西根本没有正确绘制。
如果每个系列在每个日期都包含适当的值,那很好。
我的代码在这里:
for (String source : graphData.keySet()) {
SortedMap<LocalDate, BigDecimal> data = graphData.get(source);
LocalDate prevDate = null;
for (LocalDate date: data.keySet()) {
if (prevDate == null) {
prevDate = date;
continue;
}
dataset.add(new SimpleTimePeriod(prevDate.toDateMidnight().toDate(), date.toDateMidnight().toDate()), data.get(prevDate), source, true);
prevDate = date;
}
dataset.add(new SimpleTimePeriod(prevDate.toDateMidnight().toDate(), futureDate), data.get(prevDate), source, true);
}
Map<String, SortedMap<LocalDate, BigDecimal>> graphData
包含所有系列的数据,其中地图的键是系列名称。正如我所说 - 有时 A 系列包含日期 1、2 和 3 的值,而 B 系列仅包含 1 和 2 的值。在这种情况下,A 和 B 的行看起来不正确......
有什么简单的方法可以解决这个问题吗?显而易见且难以实现的方法是计算 B 系列的遗漏值(使用线性插值?)并将其放入数据集,但这真的很难做到。也许我错过了什么?