D3.jsでデータとデータがタブコードで区切られたファイル形式である
TSV形式も扱う事ができます。タブ区切りテキストは、シンプルで
扱いやすいです、エクセルでも、このTSV形式を出力することができます。
D3.jsでは最初の1行にヘッダーがあることが前提となっているので、
text.tsvは、graph1,graph2,graph3といった名前で、その次の行から
数値データがあります。なので、ヘッダーが無い場合は、
ヘッダーを付す処理が必要です。
サンプルコードの実行結果はこちら
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 |
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>TSVファイルを読み込んでみる</title> <script src="../js/d3.js"></script> <style> svg{ width:320px; height:240px; border:2px solid black; } rect{fill:green;} .fillPink{fill:pink;} </style> </head> <body> <h2>TSV形式のファイルを読み込んでグラフ表示</h2> <svg id="graph"></svg> <script src="test.js"></script> </body> </html> |
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
/* d3.tsv(url[, accessor][, callback]) 第1引数:読み込むTSVファイルのURL 同一ドメイン(サーバー)上のファイルのみ 第2引数:ファイルの読み込みが完了時に、 呼びだす関数を指定 第1引数のパラメーターは非同期通信を行う オブジェクト(XMLHttpRequestオブジェクト)です。 エラーかどうかは、このオブジェクトのstatusプロパティの 値を調べます。 値 :説明 200 :ファイルが正常に読み込まれた 400 :不正な要求(エラー) 403 :閲覧禁止・閲覧が許可されていない(エラー) 404 :ファイルがない(エラー) 第2引数のパラメータには読み込まれたデータが オブジェクトとして渡されます。 */ d3.tsv("test.tsv",function(error,data){ /* 上記をコメントアウトして 下記のコメントアウトを消せば CSVファイルが読み込める */ //d3.csv("test.csv",function(error,data){ var arrData = []; /* data.lengthには読み込んだTSVファイルの でーたの数=行数が格納されます。 */ for( var i=0 ; i < data.length ; i++){ /* data[0]にtest.tsvの最初のデータである「100 70 40」が 入ります。このデータはヘッダーと対応していて data[0].graph1には100、 data[0].graph2には70、 data[0].graph3には40が格納されます。 */ arrData.push(data[i].graph1); } //棒グラフを描画する。 d3.select("#graph") .selectAll("rect") .data(arrData) .enter() .append("rect") .attr("class","fillPink") .attr("width",function(d,i){ return d; }) .attr("height",16) .attr("x",0) .attr("y",function(d,i){ return i * 24; }); }); |
1 2 3 4 5 6 |
graph1 graph2 graph3 100 70 40 10 150 270 170 50 200 280 200 80 140 120 140 |