Highcharts Highchart,设置极值后获取可见系列数据的总和
在使用SetExtrems更新highchart折线图后,如何仅获取序列中可见的数据点的总数 在我的JSFIDLE中,单击按钮显示得到结果4,但结果为5:( })) 函数数组sum(数据){Highcharts Highchart,设置极值后获取可见系列数据的总和,highcharts,Highcharts,在使用SetExtrems更新highchart折线图后,如何仅获取序列中可见的数据点的总数 在我的JSFIDLE中,单击按钮显示得到结果4,但结果为5:( })) 函数数组sum(数据){ var总和=0; 对于(变量i=0;i=min&&p.x我找到$(chart.series[0].data).each(function(I,row){console.log(row.isInside);}),我想这可以帮助我做我想做的事情,但这是实现可见数据点总数计数的最佳方法吗? $(function
var总和=0;
对于(变量i=0;i
}我认为更简单的方法是捕获Afteretextremes事件,然后在所有系列点上调用循环。添加检查极端值(最小值/最大值)和总和的条件
afterSetExtremes:函数(最小值、最大值){
var serie=此.chart.series[0],
min=this.getExtremes().min,
max=this.getExtremes().max,
总和=0;
$。每个(系列数据、函数(i、p){
如果(p.x>=min&&p.x我找到$(chart.series[0].data).each(function(I,row){console.log(row.isInside);}),我想这可以帮助我做我想做的事情,但这是实现可见数据点总数计数的最佳方法吗?
$(function () {
$('#container').highcharts({
chart:{
events:{
load:function(){
$('#total').text(arraySum(this.series[0].processedYData));
}
}
},
xAxis: {
type: 'datetime'
},
series: [{
data: [1, 1, 1, 1, 1],
pointStart: Date.UTC(2010, 0, 1),
pointInterval: 24 * 3600 * 1000
}]
});
// the button action
$('#button').click(function () {
var chart = $('#container').highcharts();
chart.xAxis[0].setExtremes(Date.UTC(2010, 0, 2), Date.UTC(2010, 0, 8));
$('#total').text('calculating again');
setTimeout(function(){
$('#total').text(arraySum(chart.series[0].processedYData));
},200);
});
var sum = 0;
for (var i = 0; i < data.length; i++) {
if (data[i]) {
sum += data[i];
}
}
return sum;
afterSetExtremes:function(min,max){
var serie = this.chart.series[0],
min = this.getExtremes().min,
max = this.getExtremes().max,
sum = 0;
$.each(serie.data, function(i, p){
if(p.x >= min && p.x <=max) {
sum += p.y;
}
});
$('#sum').text(sum);
}