Highcharts动态添加系列

时间:2013-06-21 10:04:01

标签: json charts highcharts highstock

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

在javascript中我正在构建一个对象:(像这样的高级示例:http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/compare/

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);

    };

1 个答案:

答案 0 :(得分:4)

为yAxis设置:

yAxis: {
    type: 'datetime'
}

请参阅fiddle

编辑: 时间线/缩放 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();
    });