2012-07-07 74 views
0

我看了SO上的其他答案,但沒有滿足我的需要。 這裏是documentation,它告訴我們如何在圖表上繪製日期。下面是示例JSON對象之一:用x軸上的日期繪製谷歌表json數據的簡單折線圖

datetime: "2012-07-07" 
hours: "0.6" 
shop: "WalMart" 
name: "Andrew" 
__proto__: Object 

我用下面的代碼添加行和列:

google.load("visualization", "1", {packages:["corechart"]}); 
google.setOnLoadCallback(drawChart); 

function drawChart() { 
    var data = google.visualization.arrayToDataTable(); 
    data.addColumn('date', 'Date'); 
    data.addColumn('number', 'Hours'); 
    $.each(hour_logs, function(key, value){// hour_logs is the collection of json objects, the sample is shown above. 
    ymd = value.datetime.split("-"); 
    var dt = new Date(parseInt(ymd[0]), parseInt(ymd[1]), parseInt(ymd[2]));   
    data.addRow(dt, parseInt(value.hours)); 
    }); 
    console.log(data); 
    var options = { 
    title: 'Daily Logs', 
    displayAnnotations: true, 
    }; 
    var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 

但我得到一個錯誤,未捕獲的錯誤:不是一個數組。如何解決它。

回答

0

添加一行時不提供數組。

應該是:的

data.addRow([dt, parseInt(value.hours)]); 

代替:

data.addRow(dt, parseInt(value.hours)); 
+0

感謝,但這並沒有工作。 – user993563 2012-07-08 05:23:16

+1

那麼,您正在使用'google.visualization.arrayToDataTable'爲圖表提供數據,該圖表需要一個數組數組(請看這個例子:http://code.google.com/apis/ajax/playground/ #line_chart)。 在你的例子中,你正在添加行(使用'addRow'逐個添加行,不要與'addRows'混淆),所以你可以使用'google.visualization.DataTable();' 希望這會有所幫助。 – Ander2 2012-07-08 08:54:33