高图:如果先前的数组仅具有空值,则序列不会更新

时间:2018-11-02 08:13:31

标签: javascript highcharts

我有一个Highchart,将更新系列。在某些情况下(如小提琴显示),更新无法正常工作。 当该系列的一个数组仅包含空值时,下一个给定的数组不会生效。

https://jsfiddle.net/ChrisCross82/ubz3o4pr/

  <body>
  <button onclick="firstData()">1st Data</button>
  <button onclick="secondData()">2nd Data</button>
  <button onclick="firstData()">Again 1st Data (without Series1)</button>

  <div id="chart1" style="height: 300px"></div>
  </body>

var chart1;

chart1 = Highcharts.chart('chart1', {
  series: [{
    data: [],
  },{
    data: [],
  }]
});


function firstData() {
  var series1 = [65.4, 72.7, 70, 60.6, 42.9];
  var series2 = [26, 33, 10, 33, 7];
  updateChart(series1, series2);
}

function secondData() {
  var series1 = [null, null, null, null, null];
  var series2 = [0, 0, 0, 0, 0];
  updateChart(series1, series2);
}

function updateChart(series1, series2){
  chart1.update({
    series: [{
      data: series1
    },{
        data: series2,
    }]
  });
 }

现在,我检查数组,如果数组中的每个值都为null,则将数组设置为[]。此后,更新工作。但是我认为这不是最好的解决方案。

也许我做错了什么?非常感谢克里斯

1 个答案:

答案 0 :(得分:1)

这个问题看起来像个错误,所以我在Highcharts github上进行了报道:https://github.com/highcharts/highcharts/issues/9290

值得注意的是,只有使用相同数量的数据进行更新才会导致此问题:https://jsfiddle.net/BlackLabel/8nbdy9wq/

要解决此问题,您可以使用null作为y属性的值来更新图表:

function secondData() {
    var series1 = [{
        y: null
    }, {
        y: null
    }, {
        y: null
    }, {
        y: null
    }, {
        y: null
    }];

    var series2 = [0, 0, 0, 0, 0];
    updateChart(series1, series2);
}

实时演示:https://jsfiddle.net/BlackLabel/cnw4vh65/