Highcharts为列图创建系列

时间:2014-01-29 07:52:23

标签: javascript jquery graph highcharts series

给定此数据时,我在填充Highcharts列图的系列部分时遇到问题。请注意col1,col2,col3是动态创建的,因此这些名称可能会发生变化,值的数量也会发生变化。

 var objData = {
    "1995":{
            "col1":300.75,
            "col2":1000,
            "col3":500
           },
    "1996":{
            "col1":300,
            "col2":400,
            "col3":900}
 }

这就是我想要的系列部分:

 series: [{
          name: 'col1', 
          data: [300.75,300]
         },
         {
          name: 'col2', 
          data: [1000,400]
         },
         {
          name: 'col3', 
          data: [500,900]
         }
        ];

我创建了一个JS小提琴:http://jsfiddle.net/jAPV5/1/并尝试构建循环,但没有运气。

如果有人可以提供帮助,那就太好了。

由于 干杯

1 个答案:

答案 0 :(得分:1)

请参阅此小提琴中的解决方案:http://jsfiddle.net/jAPV5/2/

for (var key in objData) {

 //console.log(key);  1995, 1996   
    var obj = objData[key];
    categories.push(key);

    for (var item in obj) {
        var targetSeries ;
        var bFound = false;
        for(var i=0; i< series.length; i++){
            if(item == series[i].name){
                bFound = true;
               targetSeries = series[i];
            }
        }
        if(!bFound) {
            targetSeries = {'name': item, 'data':[]};
            series.push(targetSeries);
        }
        var val = obj[item]
        targetSeries.data.push(val);
    }    

}