Highcharts hour数据聚合流程
遵循下一条规则:01 AM = 01:00 + 01:15 + 01:30 + 01:45
。 (例)。所以当前小时和下一小时之间的所有点。
我希望它遵循以下规则:01 AM = 00:00 + 00:15 + 00:30 + 00:45
我没有找到在库的数据分组选项中这样做的可能性。
现在我正在考虑修改serie.groupedData
对象(在那里添加1小时的时间),但不幸的是,即使数据被修改,它仍然会在图表中显示旧值
chartConfiguration.xAxis[0].events = {
setExtremes(event) {
this.series.forEach(serie => {
if (serie.hasGroupedData && serie.currentDataGrouping.unitName == "hour") {
let groupedData = serie.groupedData.map(dataPiece => {
dataPiece.x = dataPiece.x + 3600000;
return dataPiece;
});
serie.update(groupedData);
}
})
}
};
答案 0 :(得分:0)
如果应用1小时数据分组,此代码会将所有点的x
值更改为提前一小时:
chart: {
events: {
render: function() {
if (redrawEnabled) { // prevent infinte recursive loop - this.redraw() calls render event
redrawEnabled = false;
var series = this.series[0],
isHourUnit = series.currentDataGrouping.unitName === 'hour';
if (isHourUnit && !hourOffsetApplied) {
// change the data
series.setData(data.slice().map((p) => [p[0] - hour, p[1]]), false);
hourOffsetApplied = true;
} else if (!isHourUnit && hourOffsetApplied) {
// resotre the original data
series.setData(data, false);
hourOffsetApplied = false;
}
this.redraw();
redrawEnabled = true;
}
}
}
},
现场演示: http://jsfiddle.net/BlackLabel/z850035n/
如果您将dataGrouping.units
更改为['day', [1]]
点,则会显示没有时间偏移。