高图表堆积区域在缺少数据点时无法正常工作

时间:2019-03-17 12:11:19

标签: javascript highcharts

问题在于,当日期时间序列缺少某些 t 的数据点时,百分比面积函数似乎不起作用。

例如删除

{
x: new Date("2008-10-31T00:00:00.000Z"),
y: 0,
drilldown: 'my_drilldown'
}

来自http://jsfiddle.net/qtoas0jg/3/中的系列,给出http://jsfiddle.net/qtoas0jg/4/

预期/期望的行为是该区域应始终填充 t 。阅读完文档后,我得出结论,connectNulls:false,也使用step:"left",我可以实现一个系列的期望行为,一个系列拥有所有 t 的值,但又一次没有第二个系列。

有什么想法吗?

编辑:

我无法使用Highcharts功能解决此问题。取而代之的是,我(非常严格)通过为缺失的 t 添加值0来操纵我输入的序列。如果有人偶然发现此问题,则可能有用:

    let asd = []
    // Firstly finding which t:s that need to be added for respective series
    let to_be_added = series.map(arg_a => {
        return([arg_a.name,arg_a.data.reduce((acc_b,arg_b) => {
            // Adding all available t:s
            (asd.indexOf(arg_b.x.toString())>=0?0:asd.push(arg_b.x.toString()))
            acc_b.push(arg_b.x.toString())
            return acc_b
        },[])])
    }).map(arg_a => {
        return [arg_a[0],asd.filter(arg_b => arg_a[1].indexOf(arg_b)<0)]
    })
    // Adding the new timestamps with y:0
    to_be_added.map(arg_a => {
        series.map((arg_b,ind) => {
            if (arg_b.name == arg_a[0]) {
                arg_a[1].reverse().map(arg_c => {
                    series[ind].data.unshift({x:new Date(arg_c),y:0})
                })
            }
        })
    })

1 个答案:

答案 0 :(得分:1)

此问题是由Highcharts错误引起的:https://github.com/highcharts/highcharts/issues/5634

要解决此问题,请使用timestamps而不是Date对象:

data: [{
    x: new Date("2008-10-31T00:00:00.000Z").getTime(),
    ...
}, ...]

实时演示:http://jsfiddle.net/BlackLabel/0wr3kvt1/