如果我缩放HighStock多系列图表(使用导航器或范围选择器),是否有一种方法只能获取缩放系列的point.y数据?
例如,如果我要显示多个分支机构(每个分支机构按系列绘制)的某个时期的销售信息,并且如果放大到一周,我想知道分支机构当周的总销售额。高库存是否可以访问缩放的数据集?
答案 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
,但是它提供了min
和max
值,这些值在生效后可能会更改,这可能会带来一些意外的结果。
答案 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)
}