Highcharts动态添加系列

5
我想添加一些系列(我从一个webservice获取系列数据作为一个3维数组(并将其作为json返回) - 我不知道我将得到多少个系列,所以我必须动态加载系列数据)。
在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();

但是这个图表显示的系列有些奇怪,而且没有将时间戳转换为日期。
我的webservice的图表数据是否存在任何问题?
这是我的代码:http://jsfiddle.net/DGdaf/2/
感谢您迄今为止提供的任何帮助。
编辑:
似乎图表忽略了时间线/缩放值的所有默认值。我不知道为什么它不显示这些组件。
问题可能是我在初始化后绘制了图表?
chart = new Highcharts.Chart(options);

由于动态系列加载的原因,我不得不这样做。

编辑2
我不确定是否加载了太多数据或其他什么原因导致无法动态创建系列。

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

    };

你能否在你的jsFiddle示例数据中添加一些内容? - Paweł Fus
三维数组和JS对象的示例数据:http://jsfiddle.net/eAu32/ - spyfx
1个回答

5

设置y轴:

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

从这里看起来很奇怪:http://img823.imageshack.us/img823/2685/7y5l.jpg 我知道 - 我使用的数据比你多,但我不知道为什么我的图表会在线上绘制点。 - spyfx
并且也没有时间轴/缩放值 - spyfx
也许你想要使用Highstock图表 - 如果是这样的话...请查看Sebastian的编辑 :) - Paweł Fus
加入那个系列有什么问题吗?你的截图中添加了系列。请参考更新后的答案。 - Paweł Fus
感谢您迄今为止的支持 - 但是当我使用回调函数时,我只得到一个空图表(没有显示数据)。http://jsfiddle.net/DGdaf/9/ - spyfx
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接