我有一个json网址,我想用于我的谷歌图表 - 特别是我正在制作一个表格,如果“汇总结果”,即特定月份的数量。
我正在使用$ .getJson抓住我的json,但是我无法弄清楚如何在json上进行计算而不是循环。我可以在另一个文件中创建一个辅助函数,如果我可以执行for循环,那么可以进行整理吗?
由于
答案 0 :(得分:0)
创建DataTable
后
您可以使用Data Manipulation Methods group
和aggregate
数据
你可以使用标准的聚合函数......
google.visualization.data.avg
google.visualization.data.count
google.visualization.data.max
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>