D3.js
データビジュアライゼーションのためのD3.js徹底入門 Webで魅せるグラフ&チャートの作り方
- 作者: 古籏一浩
- 出版社/メーカー: SBクリエイティブ株式会社
- 発売日: 2014/07/01
- メディア: Kindle版
- この商品を含むブログを見る
第6章 データの更新・追加・削除 まで。 このあたりよくわかってないと、データが更新されない!と焦りそう。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>SVG</title> <link href="../node_modules/bootstrap/dist/css/bootstrap-theme.min.css" rel="stylesheet"> <link href="../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="../node_modules/octicons/octicons/octicons.css" rel="stylesheet"> <!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://cdn.jsdelivr.net/respond/1.4.2/respond.min.js"></script> <![endif]--> <style media="screen"> svg { width: 320px; height: 240px; border: 1px solid; } .bar { fill: orange; } </style> </head> <body> <script src="../node_modules/jquery/dist/jquery.min.js" charset="utf-8"></script> <script src="../node_modules/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script> <script src="../node_modules/d3/d3.min.js" charset="utf-8"></script> <div class="container"> <h1>データに応じてグラフを表示</h1> <div class="row"> <div class="col-sm-12"> <button data-src="sample6/mydata1.csv" class="btn btn-primary">mydata1.csv を読み込み</button> <button data-src="sample6/mydata2.csv" class="btn btn-info">mydata2.csv を読み込み</button> <button data-src="sample6/mydata3.csv" class="btn btn-warning">mydata3.csv を読み込み</button> </div> </div> <div class="row"> <div class="col-sm-4"> <svg id="myGraph1"></svg> </div> <div class="col-sm-4"> </div> <div class="col-sm-4"> </div> </div> <script src="sample6.js" charset="utf-8"></script> </div> </body> </html>
d3.selectAll("button").on("click", function() { var csvfile = this.getAttribute("data-src"); d3.csv(csvfile, function(error, data) { var dataset = []; var barElements; for (var i = 0; i < data.length; i++) { dataset.push(data[i]["商品A"]); } barElements = d3.select("#myGraph1") .selectAll("rect") .data(dataset); barElements.enter() .append("rect") .attr("class", "bar") .attr("width", function(d, i) { return d; }) .attr("height", 20) .attr("x", 0) .attr("y", function(d, i) { return i * 25; }); barElements.attr("width", function(d, i) { return d; }); barElements.exit().remove(); }); });