0

Google アナリティクス API を使用して、GA アカウントに関連する JSON データを取得してきました。Google Visualization API を使用して、このデータを円グラフにプロットしたいと考えています。ただし、動的データを使用して円グラフにデータを入力するのに問題があり、テキスト文字列を使用すると、 「addRows に指定された引数は数値または配列でなければなりません」というエラーが表示されます。

addRows() メソッドを使用して、変数自体の代わりに変数 'd' の出力を使用すると、チャートは正常にレンダリングされますが、変数から直接配列を読み取る際にチャートに問題があるようです。これを動的に動作させた人はいますか?

これまでの私のコードは次のとおりです。

<div id="chart_div" style="width: 900px; height: 500px;"></div>

var list = [];
var j = "";
var d = "";

$(window).load(function(){  
    var myjson = 'my json response data';
    // my json already fetched from the server using ASP.NET

    j = $.parseJSON(myjson);

    $.each(j.rows, function() {
       list.push("['" + this[0].toString() + "'," + this[7] + "]");
    }); 
    // I push all JSON entries from the 'rows' object into an array, 
    // but choose only the 1st and 8th column for the relevant data
    // and format it to be readable by the Google Visualization API 

    d = "[" + list + "]";
});


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

function drawChart() {
    var data = new google.visualization.DataTable();     

    data.addColumn('string', 'Label');
    data.addColumn('number', 'Value');

    data.addRows(d);

    var options = {
        title: 'My Daily Activities'
    };

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

1 に答える 1

0

答えに興味がある人のために- eval() メソッドを使用して、別のスレッドでこの答えに従うことで、これを機能させました。「data.addRows(d);」の入れ替え 「data.addRows(eval(d));」について トリックをしました。

于 2013-06-14T13:34:25.413 に答える