d3.js sankey 链接颜色

Aru*_*run 2 d3.js sankey-diagram

我正在寻找使链接颜色与 d3 sankey 图表中的节点填充颜色相同。

我正在使用以下函数来获取节点颜色

function getNodeColor(d){
          console.log(d3.rgb(d.color).darker(2));
          return d3.rgb(d.color).darker(2);
}
Run Code Online (Sandbox Code Playgroud)

以下是我绘制链接文本颜色的代码

// 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; })
        .filter(function(d) { return d.x < width / 2; })
        .attr("x", 6 + sankey.nodeWidth())
        .attr("text-anchor", "start")
        .style("stroke", getNodeColor);
Run Code Online (Sandbox Code Playgroud)

以上工作完美,文本显示节点文本与节点颜色。当我尝试以相同的方式更改链接定义中的笔划值时,情况并非如此:

 var link = svg.append("g").selectAll(".link")
        .data(graph.links)
      .enter().append("path")
        .attr("class", "link")
        .attr("d", path)
        .style("stroke-width", function(d) { return Math.max(1, d.dy); })
        .style("stroke", getNodeColor)
        .sort(function(a, b) { return b.dy - a.dy; });
Run Code Online (Sandbox Code Playgroud)

我是 d3 sankey 的新手,请关注http://bl.ocks.org/d3noob/c9b90689c1438f57d649

帮助赞赏...

底线:我正在寻找使桑基图表的链接/和弦颜色与矩形填充颜色相同...

she*_*lak 6

您可以使用以下代码为图中的链接使用源节点颜色。target.color如果您更喜欢使用目标节点颜色,也可以使用。

svg.selectAll(".link")
  .style('stroke', function(d){
    return d.source.color;
  })
Run Code Online (Sandbox Code Playgroud)

此代码需要放置在设置节点颜色的代码之后。