d3の力のレイアウトを使用して、たとえば、円といくつかのテキストのSVGグループとしてノードを追加できます。
var node = vis.selectAll(".node")
.data(nodes)
.enter().append("svg:g")
.attr("class", "node");
node.append("svg:circle")
.attr("r", 5);
node.append("svg:text")
.text(function(d) { return d.nodetext });
ただし、ノードデータに応じて、オプションでグループに別の要素を追加したいので、このノードのデータに「image」属性が含まれている場合は、新しい子要素(svg:image)を追加します。 )。svg:imageをすべてのノードに追加するのは簡単です(上記の円とテキストを実行したのと同じように追加します)。また、作成済みの要素の属性を動的に変更することも簡単です(上記のように、属性の値として関数を使用することによりtext
)。データに属性が含まれている場合にのみsvg:image
、子要素を追加する方法がわかりません。これを達成するための最良の方法は何ですか?image