我想从JSON'Wind_direction'值动态更改极坐标图上的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不是函数”。

所以我很累。请寻求帮助。

最佳答案

您应该能够使用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/

10-06 10:00