2013-06-21 101 views
4

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

在javascript中我建立一个对象:(这样highstock例如: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(); 

但图表绘制系列有点奇怪,并没有转换为时间戳到日期。
我的web服务中的图表数据有问题吗?

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

感谢您的帮助迄今。

编辑
好像图表ignoeres时间表/变焦值的所有默认值。 我不知道为什么它不显示这些组件。
问题可能是,我在初始化后绘制图表?

chart = new Highcharts.Chart(options); 

但我必须这样做,因为动态系列加载。

EDIT2
我不知道我是否加载了太多的数据或其他东西。我不能动态创建我的系列。

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

    }; 
+0

您可以添加到您的jsFiddle示例数据? –

+0

3dim数组和js对象的示例数据:http://jsfiddle.net/eAu32/ – spyfx

+0

看到我的回答在 –

回答

4

为您的Y轴:

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(); 
    }); 
+0

以下看起来很奇怪:http://img823.imageshack.us/img823/2685/7y5l。 jpg我知道 - 我使用的数据比你多,但是idk为什么我的图表将点划分为 – spyfx

+0

行,并且没有时间轴/缩放值 – spyfx

+0

哪个时间轴/缩放?你为什么认为这是错误的方式? –