説明
D3.jsでSVGの図形を移動させるにはtransform属性に移動と移動量を示す文字列を指定します。transform属性と値の設定はattr()メソッドを使って行います。例えば図形を横に10、縦に-60移動させるにはtranslate(10, -60)の文字列を指定します。translate()で指定される座標値は移動量である点に注意してください。つまりtranslate(20, 50)とした場合、座標(20, 50)に図形が移動するわけではありません。現在の位置より横に20移動し、縦に50移動するだけです。
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.select("#result") // ID名resultの要素を指定
.append("svg") // svg要素を追加
.attr("width", 320) // svg要素の横幅を指定
.attr("height", 240) // svg要素の縦幅を指定
.append("rect") // 四角形(矩形)を追加。以後のメソッドは、この四角形(矩形)に対しての設定になる
.attr("x", 80) // x座標を指定
.attr("y", 60) // y座標を指定
.attr("width", 100) // 横幅を指定
.attr("height", 100) // 縦幅を指定
.attr("stroke", "blue") // 青色にする
.attr("fill", "cyan") // 塗りは水色にする
.attr("stroke-width", 2) // 線幅を指定
.attr("transform", "translate(-70, 110)"); // 横方向に-70、縦方向に110移動する