2013-10-16 83 views
0

我正在嘗試繪製帶有API的Google柱形圖。數據來自一個web服務,作爲JSON字符串,我解析然後操縱添加數據,然後顯示圖表,就像這樣。Google圖表不正確,完全沒有顯示任何錯誤

var jsond = JSON.parse(response.d); 
       var data = null; 

       data = new google.visualization.DataTable(); 
       for (var i = 0; i < jsond["cols"].length; i++) { 
        data.addColumn((jsond["cols"][i].type == 'number' ? 'number' : 'string'), null, jsond["cols"][i].id); 
       } 
       data.addRows(jsond["rows"].length); 
       for (var i = 0; i < jsond["rows"].length; i++) { 
        data.setCell(i, 0, "'" + jsond["rows"][i].finmonth.toString() + "'"); 
        data.setCell(i, 1, parseFloat(jsond["rows"][i].Target)); 
        data.setCell(i, 2, parseFloat(jsond["rows"][i].Proposal)); 
        data.setCell(i, 3, parseFloat(jsond["rows"][i].ContractTotal)); 
        data.setCell(i, 4, parseFloat(jsond["rows"][i].Budget)); 
        data.setCell(i, 5, parseFloat(jsond["rows"][i].flag)); 
       } 

       var options = { 
        title: 'The road thus far', 
        vAxis: { title: "Totals" }, 
        hAxis: { title: "Financial Month" } 
       }; 

       var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
       chart.draw(data, options); 

現在的問題是,它接受的數據,並沒有返回的錯誤。我已經檢查了數據加載到數據表後與data.toJSON(),它匹配的方式谷歌規定的數據應該是。請參閱下面的數據,請記住,我只在下面的示例中添加了1個數據行,有12個標準行。

{"cols":[{"id":"finmonth","label":"","pattern":"","type":"string"}, 
{"id":"Target","label":"","pattern":"","type":"number"}, 
{"id":"Proposal","label":"","pattern":"","type":"number"}, 
{"id":"ContractTotal","label":"","pattern":"","type":"number"}, 
{"id":"Budget","label":"","pattern":"","type":"number"}, 
{"id":"flag","label":"","pattern":"","type":"number"}], 
"rows":[{"c":[{"v":"'2013/1'","f":null},{"v":0,"f":null},{"v":37,"f":null},{"v":4696,"f":null},{"v":4733,"f":null},{"v":0,"f":null}]}], 
"p":null} 

那麼我錯過了什麼?因爲如果我硬編碼測試數據在一個JavaScript數組圖表顯示...:/

回答

0

好吧,事實證明沒有什麼是我的代碼錯了。 圖表是在一個jQuery的手風琴,這是造成這個問題。 要解決這個問題,使圖表後,才手風琴已經被媒體鏈接「創建」,即

$('div').accordion(); 

被調用。 然後他們應該正確渲染。