我试图将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/