2017-03-07 70 views
0

我想從JSON'Wind_direction'值動態更改極座標圖上的startAngle值。 的代碼如下:動態更改HighCharts中的startAngle值

$(function() { 
$.getJSON('wind_graph.php?callback=?', function(dataWind) { 
    var direction = Wind_direction; 
    var polarOptions = { 
    chart: { 
     polar: true, 
     events : { 
      load : function() { 
       setInterval(function(){ 
       RefreshDataWind(); 
       }, 1000); 
      } 
     } 
    }, 
    title: { 
     text: 'Wind Direction' 
    }, 
    pane: { 
     startAngle: direction, 
    }, 
    xAxis: { 
     tickInterval: 15, 
     min: 0, 
     max: 360 
    }, 
    plotOptions: { 
     series: { 
     pointStart: 0, 
     pointInterval: 30, 
     }, 
    } 
    }; 

    // The polar chart 
    $('#graph-1').highcharts(Highcharts.merge(polarOptions, { 
    yAxis: { 
     tickInterval: 5, 
     min: 0, 
     max: 25, 
     visible: false 
    }, 
    series: [{ 
     type: 'line', 
     name: 'Direction', 
     data: [ 
      [0, 0], 
      [direction, 20] 
     ], 
     } 
    ] 
    })); 

    function RefreshDataWind() 
    { 
    var chart = $('#graph-1').highcharts(); 
    $.getJSON('wind_graph.php?callback=?', function(dataWind) 
    { 
     var direction = Wind_direction; 
     chart.series[0].setData([[0,0],[direction, 20]]); 
    }); 
    } 
}); 
}); 

在過去的功能,下面的「chart.series [0] .setData ...我嘗試添加像這樣:

chart.pane.setStartAngle(direction); 

但是,這將引發錯誤:「不能讀取屬性未定義‘由startAngle’」

還試圖另外一個想法:

polarOptions.pane({ startAngle: direction }); 

但這裏是錯誤:「polarOptions.pane不是一個函數」。

所以我是堆棧。請幫忙。

+0

你試過:'polarOptions.pane.startAngle = 90'其中90等於你的價值? –

+0

沒有。我已經嘗試過了。圖表上沒有任何變化,只有控制檯日誌中的錯誤消失。 – Pirum

+0

是的,因爲你必須使用Chart.update()函數來更新接口。請點擊此處:http://api.highcharts.com/highcharts/Chart.update –

回答

0

您應該可以用Chart.update()更新所有圖表選項。不幸的是,它看起來對窗格沒有任何影響 - 我報告了問題here。通過摧毀並創建一個新的圖表 - - http://jsfiddle.net/highcharts/qhY8C/

另一種可能是試圖解決辦法 -

現在,您可以更新老式的方法窗格設置選項窗格中,刪除窗格和更新軸 - 它應該創建一個帶有新選項的新窗格。

const xAxis = chart.xAxis[0]; 
    chart.options.pane.startAngle = 45; 
    Highcharts.erase(chart.panes, xAxis.pane); 
    chart.yAxis[0].update(null, false); 
    xAxis.update(); 

例如:http://jsfiddle.net/v8L381Lj/