説明
D3.jsでタブ区切りファイルを読み込んでデータを出力するにはd3.tsv()メソッドを使います。最初のパラメーターに読み込むタブ区切りファイルのパスを指定します。2番目のパラメーターにタブ区切りファイルを読み込んだ場合に呼び出す関数を指定します。関数にはエラー情報と読み込んだデータが渡されます。今回読み込むタブ区切りファイルの内容は1行に1つのデータがある場合です。(下記参照)
タブ区切りファイルを読み込んだらd3.select()で出力先の要素を指定します。その後、append()メソッドを使ってtable, tr, td要素を追加します。データを出力する場合、selectAll("td")としてtd要素を処理対象として選択します。これがないとサンプルの場合、ページの最後にtd要素が追加されてしまいます。次にdata()メソッドを使って出力するデータを指定します。これが、読み込んだタブ区切りファイルのデータになります。次にenter()メソッドを実行し、その後にappend("td")としてtd要素を追加します。追加したらtd要素内にデータを出力します。これはtext()メソッドを使います。パラメーターには関数を指定します。関数には読み込んだタブ区切りファイルの1データが渡されます。これはオブジェクトになっているので画面に表示する場合は「d["ヘッダー項目"]」のように指定します。これでデータを表示することができます。
HTMLソース
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3.js サンプル</title>
<link rel="stylesheet" href="css/main.css">
<style>
table,td { border : 1px solid black; }
</style>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<h1>D3.jsサンプル</h1>
<div id="result"></div>
<script src="js/sample.js"></script>
</body>
</html>
JavaScriptコード
d3.tsv("data/data.tsv", function(error, list){
d3.select("#result") // div#result内に出力
.append("table") // table要素を追加
.selectAll("tr") // tr要素を対象にする
.data(list) // 出力するデータ
.enter() // データ数だけ要素を生成
.append("tr")
.append("td")
.text(function(d){ // データ内容を出力
return d["点数"];
})
});
data.tsvデータ
点数
10
30
23
45
65
30
67