如何使highcharts默认为0数据丢失(How to make highcharts defau

2019-06-24 02:01发布

我必须在1分钟间隔的时间序列。 我想,以显示与失分0图表英寸

我发现xAxis.ordinal并把其关闭,显示时间序列正确地隔开。 问题是,它吸引点之间线路的情况下直接将0丢失的数据。

Answer 1:

一种方式是通过预处理的数据,替换null0

var withNulls = [null, 12, 23, 45, 3.44, null, 0];
var noNulls = withNulls.map(function (item) {
    return (item === null) ? 0 : item;
});

例如保存在的jsfiddle: http://jsfiddle.net/7mhMP/



Answer 2:

我看一遍搜索的HighCharts的API参考 ,但他们不提供该选项。 他们提供的是什么禁用点连接的时候可以选择null数据之间(仅适用于线图和面积图):

var chart = new Highcharts.Chart({
    plotOptions: {
        line: {
            connectNulls: false
        }
    }
});

这是默认根据API设置,所以我不知道为什么你的数据不具有连接null值之间。 也许他们近来改变了默认值?

我觉得这是你的数据的良好表现,因为违约null0似乎是误导。



Answer 3:

您哈瓦填补丢失的数据为0。因为highchart却不知道x轴的间隔。

如果以1 分钟的间隔有一个时间序列,你应该设置每分钟的数据丢失0; 如果以1 天的间隔有一个时间序列,你应该每一天丢失的数据设置为0。



Answer 4:

我有同样的问题,我的理解是,你应该在数据库为VARCHAR设置你的数据结构,并设置默认值设置为null所以,你不必成为NULL数据。 然后,它接受空值和highchart不显示,并与连接缺失的区域null值。
此外,你必须接受数据作为NULL ,不把它们变成''
看到这个工作示例:

var chart = new Highcharts.Chart({

    chart: {
        defaultSeriesType: 'spline', // use line or spline
        renderTo: 'container1'
    },

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

    series: [{
        data: [9, 4,null, 2, 1, 0, 6, 5, 4, 1, 6, 4]
    }]

});

这里是两个不同的图表小提琴用null''

更新:
如果您正在使用parseInt函数将数据推你应该记住, parseINT(NULL)给你NAN所以对于这个bug尝试手动推NULL像这样的东西:

var val = parseInt(rows[i]);
if (isNaN(val))
{
  val = null;
  result.push(val);
}


文章来源: How to make highcharts default to 0 for missing data