D3.jsの機能を使って直線を描画する (SVG使用)

説明

D3.jsの機能を使って直線を描画するにはd3.svg.line()メソッドを使います。このメソッドでx()、y()に関数を指定し、関数からの戻り値を座標値とします。x(), y()メソッドに渡される関数には配列の1要素が渡されます。つまり[1,2,3]ならば、1、2、3の数値が順番に渡されます。[[1,8],[3,6]]ならば[1,8]、[3,6]が順番に渡されます。配列内にある値からX座標、Y座標として返すものを読み出します。読み出した値はreturnで返します。このd3.svg.line()メソッドは、座標を計算する関数を返しますので、path要素のd属性にline(配列)で返された値を設定すれば直線が描画されます。

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

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コード

var svg = d3.select("#result")	// ID名resultの要素を指定
	.append("svg")	// svg要素を追加
	.attr("width", 320)	// svg要素の横幅を指定
	.attr("height", 240)	// svg要素の縦幅を指定
// データに応じて線を描画するための座標を返す関数
var line = d3.svg.line()
	.x(function(d){ return d[0]; })
	.y(function(d){ return d[1]; })
svg.append("path")	// パスを追加
	.attr("d", line([[100, 20], [300, 100]]))	// 配列の座標を渡してpath要素のd属性に設定
	.attr("stroke", "black")	// 線の色を黒にする
	.attr("fill", "none")	// 線の塗りを無しにする