Highcharts yAxis setExtremes很远

时间:2013-03-28 20:17:03

标签: highcharts

http://jsfiddle.net/wtftc/cGbUh/

$(function () {
$('#container').highcharts({
    chart: {
        plotBorderWidth: 1
    },

    xAxis: {
    },
    yAxis: [{
        startOnTick: true,
        endOnTick: true,
    }, {
        opposite: true,
        title: {
            text: null,   
        }
    }],
    title: {
        text: '',   
    },

    series: [{
        data: [-67900.92, 454001.7, -204238.28, 322154.52, 162814.29, 940881.87, 454987.58, -190981.9, 77289.43, -578758.66, 232812.59, -553224.3, -161440.06, 203872.86, -487226.65, 582178.18, 88564.43, 250057.57, -62186.0600000001, 377721.25, -196420.64, 38713.0099999999, 284969.83, 166221.67],
    }]
});


// the button action
$('#button').click(function() {
    var chart = $('#container').highcharts();
    var yAxis = chart.yAxis[0];
    yAxis.options.startOnTick = false;
    yAxis.options.endOnTick = false;

    chart.yAxis[0].setExtremes(-1034970.057, 1034970.057);
});
});

我创建了一个jsfiddle示例,说明了我要做的事情。我用示例中的数据加载图表,然后我想为我的轴设置自定义值。我设置的极值是-1034970.057,1034970.057,因为我希望我的y轴值是对称的。

然而,我在图表中最终得出的结果是yAxis极值为-1.5m和+ 3m而不是-1.5m和+ 1.5m。我要求它是对称的,但在你按下极限设置按钮后,你会发现它不是对称的。

我的数据是动态的,并且会根据他们正在查看的页面上的设置进行更改,因此这些数据只是我可以遇到的众多方案之一的示例。这意味着我无法对刻度间隔或刻度计数进行硬编码。有没有办法让它对称?

1 个答案:

答案 0 :(得分:2)

我通过在图表中将start / endOnTick设置为false然后在单击时将其设置为true来实现它。

http://jsfiddle.net/uNvvk/

yAxis: [{
        startOnTick: false,
        endOnTick: false,
    }, {


yAxis.options.startOnTick = true;
yAxis.options.endOnTick = true;

我不知道为什么会有效!