5

我想添加一些系列(我从 web 服务获取系列数据作为 3dim 数组(并将其作为 json 返回) - 我不知道我将获得的系列数量,所以我必须动态加载系列数据)。

在javascript中,我正在构建一个对象:(就像这个highstock示例:http: //jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/比较/ )

seriesOptions[i] = {
    name: namearray[i],
    data: dataarray
};

e.g. result: [Object { name="Series", data=[[1041375600000, 29,9]]}]

我试图添加这样的系列:

$.each(seriesOptions, function (itemNo, item) {
    chart.addSeries({                        
        name: item.name,
        data: item.data
    }, false);
});
chart.redraw();

但是图表绘制的系列有点奇怪,并且没有转换为迄今为止的时间戳。
我的网络服务图表数据有问题吗?

这是我的代码:http: //jsfiddle.net/DGdaf/2/

感谢您迄今为止的任何帮助。

编辑
似乎图表忽略了时间线/缩放值的所有默认值。我不知道为什么它不显示这些组件。
问题可能是,我在初始化后绘制图表?

chart = new Highcharts.Chart(options);

但由于动态系列加载,我必须这样做。

EDIT2
我不确定我是否加载了太多数据或其他东西。我无法动态创建我的系列。

for(i=0; i<seriesOptions.length; i++){
        chart.addSeries({                        
            name: seriesOptions[i].name,
            data: seriesOptions[i].data
        }, true);

    };
4

1 回答 1

5

为您的 yAxis 设置:

yAxis: {
    type: 'datetime'
}

小提琴

编辑:时间线/缩放 http://jsfiddle.net/DGdaf/5/

编辑:当图表准备好时,使用回调添加系列。但是,为什么不在创建图表时添加这些系列?

    chart = new Highcharts.Chart(options, function(ch) {

        $.each(seriesOptions, function (itemNo, item) {
            ch.addSeries({                        
                name: item.name,
                data: item.data
            }, false);

        });
        chart.redraw();
    });
于 2013-06-21T10:43:28.477 回答