Javascript Highstock:数据分组在最右边的点上出现不希望出现的行为

Javascript Highstock:数据分组在最右边的点上出现不希望出现的行为,javascript,highcharts,highstock,Javascript,Highcharts,Highstock,在使用Highstock图表的内置数据分组时,我遇到了一些不希望出现的行为。结果似乎是底层数据分组逻辑(仅分组可见点?)和极端/导航器之间存在某种冲突 一些背景: 我有一张图表,其中数据点大约每2分钟出现一次。除了单独查看点外,用户还可以选择数据点的多个不同分组(15分钟间隔、每小时和每天)。这方面的选择包括: const dataGrouping = { enabled: true, forced: true, approximation: 'sum', units: [['m

在使用Highstock图表的内置数据分组时,我遇到了一些不希望出现的行为。结果似乎是底层数据分组逻辑(仅分组可见点?)和极端/导航器之间存在某种冲突

一些背景: 我有一张图表,其中数据点大约每2分钟出现一次。除了单独查看点外,用户还可以选择数据点的多个不同分组(15分钟间隔、每小时和每天)。这方面的选择包括:

const dataGrouping = {
  enabled: true,
  forced: true,
  approximation: 'sum',
  units: [['minute', [15]]]
};
根据选择的选项,单元将被调出的位置。这似乎在按预期工作。根据用户选择的分组,我现在对导航器实施限制,以捕捉到最近的可接受间隔。例如,对于15分钟的间隔:

const newMin = moment(extremes.min).minute(15 * Math.round(moment(extremes.min).startOf('minute').minute() / 15)).startOf('minute').valueOf();

let newMax = moment(extremes.max).minute(15 * Math.round(moment(extremes.max).startOf('minute').minute() / 15)).startOf('minute').valueOf() - 1000;

if (newMax > extremes.dataMax) {
  newMax = extremes.dataMax;
}

if (newMin !== extremes.min || newMax !== extremes.max) {
  this.chart.xAxis[0].setExtremes(newMin, newMax, true, true, { trigger: 'adjExtremes' });
}
这似乎也与预期的一样,存在一个小缺陷:图形上最右边的点错误地跟踪。例如,如果最右边的点位于下午3:00,并且是下午3:00到3:15之间的值的集合,那么下午3:00点将只对下午3:00到3:01之间的任何点进行求和,因为3:01-3:15在技术上在图形上不可见(但是数据在那里,只是不在可见范围内)

我试过很多不同的方法,但都没有用。从“最大极限”减去一秒,使该点不再存在,因此在悬停时不能显示错误的值,但该线仍从底部开始。我相信,鉴于这一问题的性质,无论我采取何种极端做法,我都会继续面临这一问题。数据分组的Highstock演示示例似乎没有这个问题(可以看到直线上的点在上升,即使点/组没有在图形上绘制)


我的想法是,正确的解决方案是,只要数据存在,就强迫Highstock对点进行分组,即使这些点在技术上不会在屏幕上绘制。我尝试过关闭各种阈值,但也没有效果

总而言之,问题是分组只对可见点进行分组?如果jsfiddle有什么不同,请编辑它。如果问题像小提琴一样,那么您可能需要自己对数据进行分组—通过创建多个系列,手动分组