【D3.js】Googleスプレッドシートに入力したデータを可視化する
概要
Google Visualization APIには、Googleスプレッドシートを簡易DBとして外部から呼び出して使うことのできる機能が備わってます。
Google Visualization API Reference
参考
Google Visualization API 詳細、および Gadgets-in-Docs の作り方
このAPIを使ってGoogleスプレッドシートのデータをD3.jsで可視化してみました。
サンプル
ポイント
スプレッドシートからデータを読み出している部分は以下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
google.load("visualization", "1"); google.setOnLoadCallback(init); function init() { var query = new google.visualization.Query("https://docs.google.com/spreadsheet/ccc?key=0ArOQLX5U1kUqdFYxUzcwTDB0UUVnZHBKRnRzbUc3aGc"); query.setQuery("select * where B > 3000000 "); //SQLに似た構文でフィルタをかけることができる。 query.send(handleQueryResponse); } function handleQueryResponse(response) { // データ取得 var data = response.getDataTable(); //DataTableオブジェクトを二次元に変換 var DataArray = new Array(data.getNumberOfRows()); for (var row = 0; row < data.getNumberOfRows(); row++) { DataArray[row] = new Array(data.getNumberOfColumns()); for (var col = 0, n = data.getNumberOfColumns(); col < n; col++) { if(col > 0){ DataArray[row][col] = Math.floor(data.getFormattedValue(row, col) / 10000); //万人単位に変換 }else{ DataArray[row][col] = data.getFormattedValue(row, col); } } } //変換した配列をD3.jsに渡す rendering(DataArray); } |