要素には属性がありg
ません。この種の情報は、SVG仕様にあります:http ://www.w3.org/TR/SVG/struct.html#GElementx
y
g
次を使用して要素を移動できますtranslate
transform
:http ://www.w3.org/TR/SVG/coords.html#TransformAttribute
たとえば、text
要素には次の属性がx
あります: http ://www.w3.org/TR/SVG/text.html#TextElementy
最後のコードスニペットでは、transform属性に2つの異なる値を書き込みます。後者の値は"translate(-150,-150)"
、前者の値を上書きします。
var q = svg.append("g")
.attr("transform", function(d,i) {return "translate ("+ arc[i].centroid() +")";})
.attr("transform", "translate(-150,-150)")
SVG変換属性は、変換定義のリストを受け入れます:http ://www.w3.org/TR/SVG/coords.html#TransformAttribute
したがって、コードの最後の部分は次のように記述されている必要があります。
var q = svg.append("g")
.attr("transform", function(d,i) {
return "translate ("+ arc[i].centroid() +")" + "translate(100,-40)";
});
g
ブラウザの開発者ツール(Chromeで右クリックして選択inspect element
)で要素を調べると、次のように表示されます。
<g transform="translate (-124.42599471897063,11.965443501796923)translate(100,-40)">
<path d="M0,3.989422804014327A3.989422804014327,3.989422804014327 0 1,1 0,-3.989422804014327A3.989422804014327,3.989422804014327 0 1,1 0,3.989422804014327Z" transform="translate(-10, -5)" style="fill: #000000; "></path>
<text>Hello</text>
</g>
コンテナで2つの変換操作が表示されます。http://jsfiddle.net/xwZjN/30/
別のオプションは、パスとテキストを別のgコンテナにグループ化することです。このようなもの:
<g transform="translate (-124.42599471897063,11.965443501796923)">
<g transform="translate(100,-40)">
<path d="M0,3.989422804014327A3.989422804014327,3.989422804014327 0 1,1 0,-3.989422804014327A3.989422804014327,3.989422804014327 0 1,1 0,3.989422804014327Z" transform="translate(-10, -5)" style="fill: #000000; "></path>
<text>Hello</text>
</g>
</g>