我想添加一些系列(我从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);
};
答案 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();
});