如何在d3 Sankey图中将节点标题放在节点的左侧或右侧?

时间:2016-06-22 07:14:08

标签: d3.js sankey-diagram

以下是我所指的例子: http://bl.ocks.org/d3noob/c9b90689c1438f57d649

第二级节点的右侧标题。如何将它们放在节点的左侧?请帮忙。

1 个答案:

答案 0 :(得分:1)

这是您向节点发送文本的方式。

  node.append("text")
      .attr("x", -6)
      .attr("y", function(d) { return d.dy / 2; })
      .attr("dy", ".35em")
      .attr("text-anchor", "end")
      .attr("transform", null)
      .text(function(d) { return d.name; })
      .filter(function(d) { return d.x < width / 2; })
      .attr("x", 6 + sankey.nodeWidth())
      .attr("text-anchor", "start");

为了使文本在右边总是这样做:

  node.append("text")
      .attr("x", -6)
      .attr("y", function(d) { return d.dy / 2; })
      .attr("dy", ".35em")
      .attr("text-anchor", "end")
      .attr("transform", null)
      .text(function(d) { return d.name; })
    //.filter(function(d) { return d.x < width / 2; }) //COMMENT THIS LINE
      .attr("x", 6 + sankey.nodeWidth())
      .attr("text-anchor", "start");

注释上面显示的行,使其不过滤节点&gt;宽度的一半SVG。

工作代码here