Highstock:数据分组最右侧点

时间:2016-11-22 18:14:59

标签: javascript highcharts highstock

使用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在图表上技术上不可见(但数据存在,只是不在可见范围内)。

Bad Right-Most Point

我尝试了许多不同的事情但无济于事。减去最大极限的第二个偏差使得它不再存在,因此在悬停时不能显示不正确的值,但是线仍然从底部开始。我相信,鉴于问题的性质,无论我设定极端,我都会继续遇到问题。数据分组的Highstock演示示例似乎没有此问题(即使未在图表上绘制点/组,也可以看到线上的点正在上升。)

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

0 个答案:

没有答案