我假设给定您的数据:
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
您想按第二列(孩子的数量)分组以获得此结果:
[1, 1],
[2, 2],
[3, 4]
您可以使用数据表的按聚合功能分组轻松完成此操作。
这是示例代码:
function drawJoin() {
var dt = google.visualization.arrayToDataTable([
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
]);
// Group dt by column 2, and count number of entries for each.
var grouped_dt = google.visualization.data.group(
dt, [2],
[{'column': 0, 'aggregation': google.visualization.data.count, 'type': 'number'}]);
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(dt, null);
var grouped_table = new google.visualization.Table(document.getElementById('grouped_table'));
grouped_table.draw(grouped_dt, null);
}
随意在Google Playground上尝试一下(只需复制粘贴上面的代码)。
您可以按原样绘制图表,也可以使用 javascript 函数对其进行转置以转录数据表中的行/列。
因此,您应该使用原始数据表上的控件进行过滤,然后创建分组函数,并在图表中绘制分组表。
如果您希望标签读取“1 个孩子”而不仅仅是数字 1,那么您需要使用SetFormattedValue()创建一个函数,因为该组的输出将是一个数字。您可以将其与上面的转置函数混合使用,因为您已经在处理数据表。