web-dev-qa-db-ja.com

Force Directed Graphのd3ノードにテキストラベルを追加し、ホバー時にサイズ変更

D3 Force Directed Graphのノードにテキストラベルを追加しようとしていますが、問題があるようです。これは私の Fiddle

enter image description here

このようなノード名を追加すると:

node.append("text")
    .attr("class", "Word")
    .attr("dy", ".35em")
    .text(function(d) {
        console.log(d.name);
        return d.name;
    });

変更はありませんが、名前は記録されています。

bounding box を使用してみたところ、ノードラベルは表示されましたが、ノードのリンクが正常な間、ノードはボックスの左上隅に積み上げられています。この fiddle は私はその努力の結果です。誰が私が間違っているのか教えてもらえますか?

35
Aditya

サークル内にテキスト要素を追加していますが、機能しません。 svg要素の下にグループを追加し、各グループに円とテキストを追加できます。

// Create the groups under svg
var gnodes = svg.selectAll('g.gnode')
  .data(graph.nodes)
  .enter()
  .append('g')
  .classed('gnode', true);

// Add one circle in each group
var node = gnodes.append("circle")
  .attr("class", "node")
  .attr("r", 5)
  .style("fill", function(d) { return color(d.group); })
  .call(force.drag);

// Append the labels to each group
var labels = gnodes.append("text")
  .text(function(d) { return d.name; });

force.on("tick", function() {
  // Update the links
  link.attr("x1", function(d) { return d.source.x; })
    .attr("y1", function(d) { return d.source.y; })
    .attr("x2", function(d) { return d.target.x; })
    .attr("y2", function(d) { return d.target.y; });

  // Translate the groups
  gnodes.attr("transform", function(d) { 
    return 'translate(' + [d.x, d.y] + ')'; 
  });    

});

この戦略のフィドルの分岐点は here です

54
Pablo Navarro