0

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

有没有可以建议的解决方案或解决方法?

这是我的代码和小提琴

$(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);
});
4

3 回答 3

3

在 Highcharts 中不能有 null x 值。

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

null x 和 null y 没有给您任何意义,因为您不知道 null 值(即问题)何时发生。

于 2013-09-04T17:56:37.677 回答
1

为什么不过滤掉空/空对?如果数据没有有意义的用途,为什么允许将其发送到图表?

于 2013-09-04T15:04:39.320 回答
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/

于 2013-09-05T09:37:45.877 回答