2013-01-07 187 views
0

全部,Highcharts - 以编程方式“翻转”(反向)Y轴

我正在使用Highcharts在我正在处理的Web应用程序中。其中一个要求是用户应能够点击按钮并“翻转”或反转Y轴。

换言之 - 当用户点击一个按钮 - y轴值应当翻转从:

highest at the top/lowest at the bottom 

lowest at the top/highest at the bottom 

在首次创建图表 - 这是可能的用“倒” Y轴的特性:

http://api.highcharts.com/highcharts#yAxis.reversed

这里的例子:http://jsfiddle.net/ZgVNS/

但是 - 如果我试图用JavaScript使用选项对象(例如,点击一个按钮)编程做到这一点,它似乎不工作:

chart.options.yAxis.reversed = !chart.options.yAxis.reversed; 
chart.redraw(); 

这里有一个的jsfiddle我成立了测试:http://jsfiddle.net/4JZxS/6/

这可能吗?

在此先感谢!

+0

'@ oftopic':这是我的jsfiddle或它没有显示加载的代码? –

+0

@RicardoLohmann矿不在Chrome上工作。在Firefox中,我可以看到代码。 –

回答

5

可以使用Axis.update()方法:

$(function() { 
    var chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container' 
     }, 
     xAxis: { 
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
     }, 
     yAxis: { 
      reversed: false 
     }, 
     series: [{ 
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] 
     }] 
    }); 

    var reversed = chart.options.yAxis.reversed; 

    // the button action 
    $('#button').click(function() { 

     chart.yAxis[0].update({ 
      reversed: !reversed 
     }); 

     reversed = !reversed; 
    }); 
}); 

这里的更新的JSFiddle:http://jsfiddle.net/4JZxS/15/

2

我不认为这是可能的。

我的建议是使用chart.destroy()摧毁图表并创建新的一个在颠倒财产,想在这个fiddle