2016-07-28 1 views
0

Googleのグラフに使用したいjsonのURLがあります。具体的には、集計結果(特定の月のボリューム)の場合はテーブルを作成しています。データ集約中にGoogle Chartsにjson urlを渡しますか? - Javascript

私は$ .getJsonを使用して私のjsonをつかんでいますが、私はループを経由する以外にjsonの計算をどのように行うことができないのか分かりません。 forループを使って私ができることがあれば、別のファイルで二次関数を宣言することはできますか?

おかげで、作成した後

+0

ルック:http://stackoverflow.com/questions/1637334/iterating-through- parsing-json-object-via-javascript –

答えて

0

DataTable
... Data Manipulation Methodsはあなたが標準AGG機能を使用することができ、データ

groupaggregateに使用することができますがあります

google.visualization.data.avg
google.visualization.data.count
​​
google.visualization.data.min
google.visualization.data.sum

したり、独自の書き込み、機能が提供さcolumnから値の配列を受け取ります

列定義:

{'column': 3, 'aggregation': doubleSum, 'type': 'number', 'label': 'double minutes'}

AGG機能:この時

function doubleSum(values) { 
    var groupValue = 0; 
    values.forEach(function (v) { 
    groupValue += (v * 2); 
    }); 
    return groupValue; 
} 

作業スニペット以下を参照してください...

google.charts.load('current', { 
 
    callback: function() { 
 
    var data = new google.visualization.DataTable({ 
 
     cols: [ 
 
     {id: 'dat_ym', label: 'Start Date', type: 'date'}, 
 
     {id: 'user-id', label: 'User-Id', type: 'string'}, 
 
     {id: 'customer-id', label: 'Customer-Id', type: 'string'}, 
 
     {id: 's_minutes', label: 'minutes', type: 'number'} 
 
     ], 
 
     rows: [ 
 
     {c:[{v: new Date('2016, 01, 01')}, {v: '44836'}, {v: '67205'}, {v: 1122} ]}, 
 
     {c:[{v: new Date('2016, 01, 01')}, {v: '86495'}, {v: '67205'}, {v: 332} ]}, 
 
     {c:[{v: new Date('2016, 01, 01')}, {v: '44836'}, {v: '228626'}, {v: 90} ]}, 
 
     {c:[{v: new Date('2016, 01, 01')}, {v: '86495'}, {v: '228626'}, {v: 334} ]}, 
 
     {c:[{v: new Date('2016, 02, 01')}, {v: '44836'}, {v: '67205'}, {v: 554} ]}, 
 
     {c:[{v: new Date('2016, 02, 01')}, {v: '86495'}, {v: '67205'}, {v: 819} ]}, 
 
     {c:[{v: new Date('2016, 02, 01')}, {v: '44836'}, {v: '228626'}, {v: 420} ]}, 
 
     {c:[{v: new Date('2016, 02, 01')}, {v: '86495'}, {v: '228626'}, {v: 544} ]}, 
 
     ] 
 
    }); 
 

 
    // group data by date, customer 
 
    var grouped_data = google.visualization.data.group(
 
     data, 
 
     [0, 2], 
 
     [ 
 
     {'column': 3, 'aggregation': google.visualization.data.sum, 'type': 'number'}, 
 
     {'column': 3, 'aggregation': doubleSum, 'type': 'number', 'label': 'double minutes'} 
 
     ] 
 
    ); 
 

 
    // use custom aggregation 
 
    function doubleSum(values) { 
 
     var groupValue = 0; 
 
     values.forEach(function (v) { 
 
     groupValue += (v * 2); 
 
     }); 
 
     return groupValue; 
 
    } 
 

 
    var chart = new google.visualization.Table(document.getElementById('chart_div')); 
 
    chart.draw(grouped_data); 
 
    }, 
 
    packages:['table'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div"></div>

+0

この質問は運がいいですか? – WhiteHat

関連する問題