任意の文字で区切られたテキストファイルを読み込み処理する

説明

D3.jsでは任意の文字で区切られたテキストファイルを読み込んでデータセットとして変換することができます。変換にはd3.dsv()メソッドとprase()メソッドを使います。まず、d3.text()メソッドでテキストファイルを読み込みます。次にd3.dsv()の最初のパラメーターに区切り文字を指定します。2番目のパラメーターにはMIME Typeを指定します。プレーンテキストの場合は"text/plain"となります。次にメソッドチェーンを使ってparse()のパラメーターに読み込まれたテキストファイルを指定します。これはd3.text()メソッドで読み込まれたデータをそのまま指定します。
以下のサンプルではテキストファイルのデータは#で区切られています。また、テキストファイルの最初の行はヘッダー行として扱われるのでサンプルのようにプロパティとして各データにアクセスすることができます。

サンプル [サンプルを実行する] [サンプルをダウンロード]

HTMLソース

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3.js サンプル</title>
<link rel="stylesheet" href="css/main.css">
<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.text("data/data.txt", function(error, text){
	var data = d3.dsv("#", "text/plain").parse(text);
	var result = "";
	for(var i=0; i<data.length; i++){
		result = result + i + " : " + data[i].label+", " + data[i].value + "<br>";
	}
	d3.select("#result").html(result);
});

data.textファイルの内容

label#value
a#10
b#20
c#50
d#6
e#80
f#33
g#42
h#72
i#90
j#25