2017-03-07 43 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/