2011-06-06 31 views
0

我正在构造一个组合图表,从ajax json对象组成一个'spline'和'pie'。构建与Highcharts的组合图表

我有的问题是只有饼图呈现,它的馅饼覆盖样条。如果我删除饼图,则样条线正确呈现。

这是我的代码。

$(document).ready(function() { 
var options = { 
    chart: { 
     renderTo: 'container' 
    }, 
    title: { 
     text: 'The Planning Process' 
    }, 
    xAxis: { 
     title: { 
      text: 'Time' 
     }, 
     type: 'datetime' 
    }, 
    yAxis: { 
     title: { 
      text: 'Turn Over' 
     } 
    }, 
    plotOptions: { 
     series: {} 
    }, 
    series: [] 
}; 

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    url: "_services/ScriptService.asmx/getData", 
    success: function (items) { 

     var obj = jsonParse(items.d); 
     var series = { data: [] }; 

     $.each(obj, function (itemNo, item) { 
      if (itemNo == 0) { 
       series.data = item.data; 
       series.name = item.name; 
       series.type = item.type; 
      } else if (itemNo == 1) { 
       series.type = item.type; 
       series.data = item.data; 
      series.name = item.name; 
       series.center = item.center; 
       series.size = item.size; 
       series.showInLegend = item.showInLegend; 
      } 
     }); 

     options.series.push(series); 

     chart = new Highcharts.Chart(options); 
     console.log(options); 

    }, 
    cache: false, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } 
}); 
}); 

而我的json;

[{ 
    "name": "Projection", 
    "type": "spline", 
    "data": [ 
     [ 
      634420512000000000, 
      100000 
     ], 
     [ 
      634421376000000000, 
      100086 
     ], 
     [ 
      634422240000000000, 
      100171 
     ], 
     [ 
      634423104000000000, 
      100257 
     ] 
    ] 
}, 
{ 
    "name": "Where you where", 
    "type": "pie", 
    "center": [ 
     100, 
     80 
    ], 
    "size": 100, 
    "showInLegend": false, 
    "data": [ 
     { 
      "name": "Client Based Adviser Charged As Percent", 
      "color": "#4572A7", 
      "y": 8 
     }, 
     { 
      "name": "Provider Commission Based As Percent", 
      "color": "#AA4643", 
      "y": 92 
     } 
    ] 
}] 

任何人都可以指出我哪里会出错吗?

回答

2
success: function (items) { 

    var obj = jsonParse(items.d); 

    $.each(obj, function (itemNo, item) { 
     series = new Array(); 
     if (itemNo == 0) { 
      series.data = item.data; 
      series.name = item.name; 
      series.type = item.type; 
     } else if (itemNo == 1) { 
      series.type = item.type; 
      series.data = item.data; 
      series.name = item.name; 
      series.center = item.center; 
      series.size = item.size; 
      series.showInLegend = item.showInLegend; 
     } 
     options.series.push(series); 
    }); 

    chart = new Highcharts.Chart(options); 
    console.log(options); 

}, 

这个循环永远不会增加了第二个系列中,您只得到在循环的最后一个,因为它是在之前写一个。

我的更改可能会解决问题,我目前不在计算机附近进行检查。

+0

感谢您的回复,我将如何重构我的代码? – Dooie 2011-06-06 09:01:05

+0

是的,工作。感谢Tnem – Dooie 2011-06-06 09:20:56