我试图将Sankey图上最右边的节点的标签移到该节点之后,而不是在该节点之前。我正在使用here中显示的代码。

通过键入过滤器功能行,我能够使文本跟随节点,如下所示

// add in the title for the nodes
  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 + " ("+Math.round(d.value).toLocaleString('en') + ")"; })
    //.filter(function(d) { return d.x < width / 2; })
      .attr("x", 6 + sankey.nodeWidth())
      .attr("text-anchor", "start");


但是,现在此文本以右边距为界。即使在调整屏幕宽度时,它仍然会被切断。我怀疑代码中有一行代码,其大多数节点都位于正确的边距处。我是1)试图找到这一行,2)试图使它适用于文本而不是节点。

最佳答案

更改右边距

var margin = {top: 10, right: 10, bottom: 10, left: 10},


对此:

var margin = {top: 10, right: 90, bottom: 10, left: 10},


工作代码here

关于javascript - 在D3 Sankey图的最后一个节点之后添加文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37928506/

10-16 19:27
查看更多