在HighCharts中动态更改startAngle值

时间:2017-03-07 09:20:32

标签: javascript json highcharts

我想从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;系列[0] .setData下面......我试图添加这样的东西:

chart.pane.setStartAngle(direction);

但这会引发错误:"无法读取属性' startAngle'未定义"

还在尝试另一个想法:

polarOptions.pane({ startAngle: direction });

但这里有错误:" polarOptions.pane不是函数"。

所以我堆叠了。请求帮助。

1 个答案:

答案 0 :(得分:1)

您应该可以使用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/