Javascript Highcharts:自定义数据分组近似值:按图表区域裁剪的数据组

Javascript Highcharts:自定义数据分组近似值:按图表区域裁剪的数据组,javascript,function,highcharts,highstock,approximation,Javascript,Function,Highcharts,Highstock,Approximation,请参见Highcharts提供的此示例自定义近似值: 从左向右滚动所选内容 请注意,dataGroupInfo.length随着dataGroup进入和退出图表区域而增加和减少。我相信这是由于数据组被图表区域裁剪而成的 我试图通过将cropThreshold设置为无穷大来解决此问题,但没有成功(这似乎无关) 我需要创建一个不被图表区域裁剪的自定义近似值 让事情变得复杂一点,我的自定义近似值是系列[0]的平均值。在我的例子中,它是系列[0]除以系列[1]的结果 我当前的尝试如下: 它按预期工作

请参见Highcharts提供的此示例自定义近似值:

从左向右滚动所选内容

请注意,
dataGroupInfo.length
随着
dataGroup
进入和退出图表区域而增加和减少。我相信这是由于
数据组被图表区域裁剪而成的

我试图通过将
cropThreshold
设置为无穷大来解决此问题,但没有成功(这似乎无关)

我需要创建一个不被图表区域裁剪的自定义近似值

让事情变得复杂一点,我的自定义近似值是
系列[0]
的平均值。在我的例子中,它是
系列[0]
除以
系列[1]
的结果

我当前的尝试如下:

它按预期工作-除了在图表区域的边缘。同样,我认为这是由于图表区域裁剪了
数据组

感谢您的帮助。

谢谢。

我想您只需要设置,请参见演示:注意:它将从所有点将您的yAxis缩放到极限,正如名称所示;)但将同时对所有点进行分组,而不仅仅是可见范围内的点。@PawełFus谢谢!我没有意识到这对数据分组有如此大的影响。工作起来很有魅力!现在,如果有一种方法可以在不影响yAxis极值的情况下对数据进行分组,这将是一个完美的解决方案。我并不总是有太多的垂直不动产,而且考虑到我的数据集的极端情况,图形的某些部分在很大程度上看起来是平面线。我认为像这样的简单插件:应该可以解决这个问题。如您所见,在计算序列的极值时,我们可以更改
getExtremesFromAll
,并在设置极值后恢复。
dataGrouping: {
    approximation: function () {
        return this.dataGroupInfo.length;
    },
    forced: true
},
approximation: function(arr) {
    var numerator = 0,
        denominator = 0;
    if (arr.length !== 0) {
        var start = this.xData.indexOf(this.processedXData[0]) + this.dataGroupInfo.start,
            slicedArr = this.chart.series[1].yData.slice(start, start + (arr.length));
        for (var i in arr) {
            numerator += arr[i];
            denominator += slicedArr[i];
        };
    };
    return denominator !== 0 ? Math.round((numerator / denominator) * 1000) / 1000 : null;
},