Highchart - 仅当value为null时才连接空值

时间:2018-03-29 09:48:01

标签: javascript highcharts

我有Highchart呈现line系列,如下面的代码段所示:

Highcharts.chart('container', {

    title: {
        text: 'The graphs connect from April to June, despite the null value in May'
    },

    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    plotOptions: {
        series: {
            connectNulls: true
        }
    },

    series: [{
        data: [
            20,
            60,
            null,
            11,
            null,
            160,
            120,
            130,
            NaN,
            NaN,
            80,
            40],
        type: 'line',
        name: 'Area range series',
        marker: {
            enabled: false
        }
    }]

});
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>

<div id="container"></div>

我知道Highchart有一个属性connectNulls来连接空值。但我想仅在值为Null而非NaN时才进行连接。

1 个答案:

答案 0 :(得分:1)

NaN不是正确的点格式,就像String或Boolean一样。如果value不是数字,则将其视为空点。我想你想使用相反的选项:connectNulls为false,只需删除零点,使用给定的索引,演示:http://jsfiddle.net/BlackLabel/fquznbeq/4/

您可以自动完成此过程:http://jsfiddle.net/BlackLabel/fquznbeq/8/

function toHCFormat(data) {
  var formatted = [];

  data.forEach(function (point, i) {
    if (point === null) {
      // do nothing
    } else if (isNaN(point)) {
      formatted.push([i, null]);
    } else {
      formatted.push([i, point]);
    }
  });

  return formatted;
}

使用:

data: toHCFormat([
  20,
  60,
  null,
  11,
  null,
  160,
  120,
  130,
  NaN,
  NaN,
  80,
  40
]),