导航器显示在1970年,当第一个点为空时

时间:2013-09-04 14:38:10

标签: highcharts highstock

我从客户端异步加载数据。有时会收到空时间和值对。如果发生这种情况,导航器将从1970年开始显示。 我已尝试将初始点设置为导航器系列中的第一个时间戳,问题仍然存在,因为null在显示的系列中。

您是否有建议的解决方案或解决方法?

这是我的代码和a fiddle

$(function() {
    $('#container').highcharts('StockChart', {

        chart: {
        },

        navigator: {
            adaptToUpdatedData: false,
            series: {
                name: 'navigator'
            }
        },

        rangeSelector: {
            enabled: false
        },
        series: [{
            name: "Billy"
        }
        ]
    });

    var data = [[null, null],
                    [Date.UTC(1990,  9, 27), 10 ],
                    [Date.UTC(1990, 10, 10), 20 ],
                    [Date.UTC(1990, 10, 18), 30 ],
                    [Date.UTC(1990, 11,  2), 40 ],
                    [Date.UTC(1990, 11,  9), 50 ],
                    [Date.UTC(1990, 11, 16), 60 ],
                    [Date.UTC(1990, 11, 28), 50],
                    [Date.UTC(1991,  0,  1), 40],
                    [Date.UTC(1991,  0,  8), 30],
                    [Date.UTC(1991,  0, 12), 20],
                    [Date.UTC(1991,  0, 27), 10]]
    var chart = $('#container').highcharts();
    chart.series[0].setData(data);
    chart.xAxis[0].setExtremes(chart.xAxis[0].min, chart.xAxis[0].max, true);
});

3 个答案:

答案 0 :(得分:3)

在Highcharts中不能有空x值。

如果您没有该点的y数据,请将您的数据指定为({)[Date.UTC(1990, 9, 27), null]

null x和null y没有给你任何意义,因为你不知道何时出现空值(即问题)。

答案 1 :(得分:1)

为什么不过滤出null / null对?如果数据无意义使用,为什么允许将其发送到图表?

答案 2 :(得分:0)

您还可以合并这些行:

 chart.addSeries({
            name: 'USD to EUR'
        });
    chart.series[0].setData(data);

进入

 chart.addSeries({
    name: 'USD to EUR',
    data:data,
    pointStart: Date.UTC(1990, 9, 27)
});

您可以使用pointStart,但最好摆脱空值。

http://jsfiddle.net/Tt7dp/4/