D3.js Sankey图:在每列节点上添加标题(文本)

时间:2018-04-29 15:35:28

标签: javascript d3.js sankey-diagram

我想在D3.js Sankey图中的每列节点上添加标题。例如,我举了这个例子:http://bl.ocks.org/d3noob/5028304这就是我想要的结果:

Sankey graph

我认为这样的事情但它并没有让我信服。我正在寻找其他替代方案。

        var columnNames=["step 1","step 2","step 3","step 4"];
        var distance=width/(columnNames.length-1);
        var pos=0;
        
        for (var i = 0; i < columnNames.length; i++){
            svg.append("text")
              .attr("x", pos)
              .text(columnNames[i]); 

            pos=pos+distance;
        }

我该怎么做?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

生成sankey时,sankey中的每个节点都会分配一个dx值,该值与左侧的位置相关联。如果遍历节点(graph.nodes),并创建一个包含唯一dx值的数组,您将知道有多少步,以及步标签的x坐标。

这个数组可以用作数据连接来生成标签,然后可以使用值创建文本,例如label.text(function(d){return“step”+ d;})