无法在力向图上向节点添加标签

时间:2019-09-22 10:26:32

标签: d3.js

抱歉,这无疑是一个愚蠢的问题,但是我已经玩了好几个小时了,无法解决这个问题。

我的力导向图可以很好地与组一起工作,并且我正在尝试向节点添加标签。

但是,我只是不能使它正常工作!我不会从很多失败的尝试中粘贴代码,相反,这就是我现在用来绘制图形的方式。我该如何将d.id作为文本标签添加到节点?

  let g = svg
      .append("g")
      .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")"),
    link = g
      .append("g")
      .attr("stroke", "#000")
      .attr("stroke-width", 1.5)
      .selectAll(".link"),
    node = g
      .append("g")
      .attr("stroke", "#fff")
      .attr("stroke-width", 1.5)
      .selectAll(".node");

    // Apply the general update pattern to the nodes.
    node = node.data(nodes, function(d) {
      return d.id;
    });
    node.exit().remove();
    node = node
      .enter()
      .append("circle")
      .attr("fill", function(d) {
        return color(d.group);
      })
      .attr("r", 15)
      .merge(node);

enter image description here

1 个答案:

答案 0 :(得分:-1)

let allNodes = svg.selectAll(“。node”)。data(nodes,d => d.id)

let newNodes = allNodes.enter()。append(“ g”)。classed(“ node”,true);

...

newNodes.append(“ circle”)。attr(“ fill”,...)。attr(“ r”,15)

newNodes.append(“ text”)。text(d => d.id)

...

allNodes = newNodes.merge(allNodes)

allNodes.exit()。remove()