0

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。我要求它是对称的,但是在你按下设置极端按钮后,你可以看到它不是对称的。

我的数据是动态的,并且会根据他们正在查看的页面上的设置而变化,因此这些数据只是我可能遇到的众多场景之一的示例。这意味着我不能硬编码滴答间隔或滴答计数。有没有办法让它对称?

4

1 回答 1

2

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

http://jsfiddle.net/uNvvk/

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


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

我不知道为什么会这样!

于 2013-03-28T22:34:18.170 回答