Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highstock图表-缺少设置极端事件数据_Javascript_Highcharts - Fatal编程技术网

Javascript Highstock图表-缺少设置极端事件数据

Javascript Highstock图表-缺少设置极端事件数据,javascript,highcharts,Javascript,Highcharts,我已创建了具有以下规格的图表: $('#container').highcharts('StockChart', { chart: { alignTicks: false, zoomType: 'x' }, rangeSelector: { selected: 5, buttons: [ {

我已创建了具有以下规格的图表:

$('#container').highcharts('StockChart', {
        chart: {
            alignTicks: false,
            zoomType: 'x'
        },

        rangeSelector: {
            selected: 5,
            buttons: [
                {
                    type: 'minute',
                    count: 1,
                    text: '1m'
                }, {
                    type: 'minute',
                    count: 10,
                    text: '10m'
                }, {
                    type: 'minute',
                    count: 30,
                    text: '30m'
                }, {
                    type: 'minute',
                    count: 60,
                    text: '1h'
                }, {
                    type: 'day',
                    count: 1,
                    text: '1d'
                }, {
                    type: 'all',
                    text: 'All'
                }
            ]
        },

        title: {
            text: 'Ping RTT over time for: ' + host
        },
        subtitle: {
            text: document.ontouchstart === undefined ?
                'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in'
        },
        xAxis: {
            type: 'datetime',
            events: {
                setExtremes: setExtremesCallback
            }
        },
        yAxis: {
            title: {
                text: 'Ping RTT (ms)'
            }
        },
        legend: {
            enabled: false
        },
        plotOptions: {
            column: {
                color: Highcharts.getOptions().colors[c]
            },
            series: {
                dataGrouping: {
                    approximation: "average"
                }
            }
        },
        series: [{
            type: 'column',
            name: 'Ping RTT',
            data: h,
        }]
    });
然后我将
setExtreme
回调定义如下:

function setExtremeCallback(event) {
    var min = event.min;
    var max = event.max;
    var container = event.target.chart.renderTo
    ...
}
在这个函数中,我想计算一些关于所选范围内数据部分的统计信息。为此,我需要
min
max
,并且我能够从
事件
对象捕获它们。 问题是您无法访问
数据
数组。我试过了

var data = event.target.chart.series[0].data


但它们都是空的。

我用这种方法解决了这个问题,但我很确定有一种更干净的方法可以做到这一点

function setExtremeCallback(event) {
    var minPos = 0;
    var maxPos = this.series[0].xData.length - 1;
    for (var j = 0; j < this.series[0].xData.length; j++) {
        if (this.series[0].xData[j] <= event.min)
            minPos = j;
        if (this.series[0].xData[j] <= event.max)
            maxPos = j;
    }
    var yData = this.series[0].yData.slice(minPos, maxPos);
    ...
}
函数setExtremeCallback(事件){
var-minPos=0;
var maxPos=this.series[0].xData.length-1;
对于(var j=0;jfunction setExtremeCallback(event) {
    var minPos = 0;
    var maxPos = this.series[0].xData.length - 1;
    for (var j = 0; j < this.series[0].xData.length; j++) {
        if (this.series[0].xData[j] <= event.min)
            minPos = j;
        if (this.series[0].xData[j] <= event.max)
            maxPos = j;
    }
    var yData = this.series[0].yData.slice(minPos, maxPos);
    ...
}