在chart.js中使用空值的步进行

Har*_*son 5 javascript chart.js

我有数据:[10,5,null,10,5]和标签:[2010, 2011, 2012, 2013, 2014]

我想绘制一条在2012和之间有间隙的阶梯线2013.当我设置steppedLinetrue,它只是画了一条垂直线的2011,但没有横线连接20112012作为价值2012null.如果我设置spanGapstrue,它将从值20112013值绘制一条线5.

基本上我正在寻找的是如果起始值是一个数字并且结束值是null,则绘制一条线,但反之则不然

的jsfiddle

控制器中的相关代码:

    _this.lines = {};
    _this.lines.labels = [2010,2011,2012,2013,2014];
    _this.lines.data = [
        [10, 5, null, 10, 5]    
    ];
    _this.lines.series = ['Now'];
    _this.lines.options = {
        scales: {
            xAxes: [{
                type: 'time',
                time: {
                    parser: 'DD MMM YYYY'
                }
            }],
            yAxes: [{
                type: 'linear',
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    };
    _this.lines.datasetOverride = [{
        fill: false,
        spanGaps: true,
        steppedLine: true
        },
    ];
Run Code Online (Sandbox Code Playgroud)

HTML:

<canvas class="chart chart-line" chart-labels="ctrl.lines.labels" chart-data="ctrl.lines.data" chart-options="ctrl.lines.options" chart-series="ctrl.lines.series" chart-dataset-override="ctrl.lines.datasetOverride" height="140" responsive=true></canvas>
Run Code Online (Sandbox Code Playgroud)

Geo*_*rge 2

这可能不完全是您想要的,但您可以随意添加另一个2012具有相同值的点 at 2011,然后2012随意添加另一个数据点,这样它将在和 之间null创建一个间隙,尽管它会在 处创建一个点。201220132012

在此输入图像描述

JSFiddle

_this.lines.labels = [2010,2011,2012,2012,2013,2014];
_this.lines.data = [
    [10, 5,5,null, 10, 5]    
];
Run Code Online (Sandbox Code Playgroud)

这将是对当前代码的唯一更改