Highcharts: ряд не обновляется, если предыдущий массив имел только нулевые значения - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть 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,
    }]
  });
 }

Пока я проверяю массив, и если каждое значение в массиве равно нулю, я устанавливаю массив в []. После этого обновление работает. Но я думаю, что это не лучшее решение.

Может я что-то не так делаю? Большое спасибо, Крис

1 Ответ

0 голосов
/ 05 ноября 2018

Эта проблема выглядит как ошибка, поэтому я сообщил об этом на github Highcharts: 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...