あなたのデータが与えられたと仮定します:
['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 ]
この結果を取得するには、2 番目の列 (子供の数) でグループ化します。
[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()を使用して関数を作成する必要があります。既にデータ テーブルで作業を行っているため、これを上記の転置関数と組み合わせることができます。