HighCharts:访问缩放的系列数据

时间:2018-09-16 19:15:58

标签: highcharts

如果我缩放HighStock多系列图表(使用导航器或范围选择器),是否有一种方法只能获取缩放系列的point.y数据?

例如,如果我要显示多个分支机构(每个分支机构按系列绘制)的某个时期的销售信息,并且如果放大到一周,我想知道分支机构当周的总销售额。高库存是否可以访问缩放的数据集?

2 个答案:

答案 0 :(得分:0)

一种非常强力的方法是在缩放时遍历数据并评估其是否可见。也就是说,给定点是否在x轴(和y轴,如果允许在该方向上缩放)范围内?

chart: {
    events: {
        redraw: function() {
            sum = 0;
            xAxis = this.xAxis[0];
            // Loop over your series
            this.series[0].data.forEach(function(point) {
                // Add to sum if within x-axis visible range
                if(point.x >= xAxis.min && point.x <= xAxis.max) {
                    sum += point.y;
                }
                // If too large, stop summing
                if(point.x > xAxis.max) {
                    return;
                }
            });
            // Print sum
            console.log('Visible sum: '+sum);
        }
    }
}

查看其中的this JSFiddle demonstration

您可能会评估xAxis.events.setExtremes,但是它提供了minmax值,这些值在生效后可能会更改,这可能会带来一些意外的结果。

答案 1 :(得分:0)

您可以在每个点上检查isInside标志:

        redraw: function() {
            var sum = 0;

            Highcharts.each(this.series[0].points, function(point) {
                if (point.isInside) {
                    sum += point.y;
                }
            });
            console.log(sum)
        }

实时演示:http://jsfiddle.net/BlackLabel/7kmzhecy/