javascript - Highcharts 的 getExtremes 函数无法返回正确的 dataMax

标签 javascript jquery highcharts

我正在使用一个 Highcharts 来控制另一个 Highcharts 。设置chart.evetns.selection后,如果我缩放一个很小的区域,chart.yAxis.getExtremes将无法返回正确的dataMax。但是,如果我再次单击,它会返回正确的值。有什么建议可以避免这种情况吗?这是我的代码:http://jsfiddle.net/tianhuidong/Jhupu/

$(function () {
    $('#container1').highcharts({
        chart: {
            events: {
                selection: function (event) {
                    m1 = event.xAxis[0].min
                    m2 = event.xAxis[0].max
                    var chart1 = $('#container1').highcharts()
                    var chart2 = $('#container2').highcharts()
                    chart1.xAxis[0].setExtremes(m1, m2);
                    chart2.xAxis[0].setExtremes(m1, m2);
                },
                click: function (event) {
                    var chart1 = $('#container1').highcharts()
                    var chart2 = $('#container2').highcharts()
                    xx = chart1.xAxis[0].getExtremes()
                    yy = chart1.yAxis[0].getExtremes()
                    alert(yy.min)
                    alert(yy.dataMax)
                    alert(yy.userMax)
                    alert(Object.keys(yy))
                    chart1.xAxis[0].setExtremes(xx.dataMin, xx.dataMax);
                    chart1.yAxis[0].setExtremes(yy.dataMin, yy.dataMax);
                    chart2.xAxis[0].setExtremes(xx.dataMin, xx.dataMax);
                }
            },
            zoomType: 'xy'
        },


        tooltip: {
            crosshairs: true
        },
        plotOptions: {
            series: {
                events: {
                    legendItemClick: function (event) {
                        var chart1 = $('#container1').highcharts()
                        var chart2 = $('#container2').highcharts()
                        //alert(Object.keys(chart1.series[0]))
                        chart2.series[0].hide()
                        //chart2.showResetZoom()
                        //alert(Object.keys(chart.resetZoomButton))



                    }
                }
            }
        },

        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        series: [{
            data: [29.9, 71.5, 186.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 186.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }]

    });
});

$(function () {
    $('#container2').highcharts({
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        series: [{
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 116.4, 194.1, 95.6, 54.4, 29.9, 71.5, 186.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }]

    });
});

最佳答案

您是否尝试过设置 minRange 参数? http://api.highcharts.com/highstock#xAxis.minRange

关于javascript - Highcharts 的 getExtremes 函数无法返回正确的 dataMax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361377/

相关文章:

javascript - Jquery 中 $ ("#").load() 完成后是否会触发任何事件?

jquery - 使用 jquery 在单击时将元素内容复制到剪贴板

javascript - angularjs 和 highcharts,除非我将鼠标悬停在数据点上,否则不会显示标签

javascript - 右键单击特定图例项

javascript - 使用 .then 函数时页面未加载

javascript - 自动删除 HTML 和 Javascript 注释

javascript - 停止 IE8 中的脚本加载错误弹出窗口

javascript - 这段动态生成 SelectBox 的代码有什么问题?

jquery - 如何使用 Jackson 将数据保存在类对象中,作为 json 对象从 jsp 页面发送到 spring 中的 Controller ?

javascript - Highcharts - 如何从 HTML 表格中制作包含多个系列的散点图