您链接到的示例在 Sankey 插件之上使用了不同的 API。我将解释这个例子。Sankey 插件不绘制视觉元素,它只计算它们的位置,因此您可以随意设置颜色。
示例中链接的相关代码如下:
var link = svg.append("g").selectAll(".link")
.data(energy.links)
.enter().append("path")
.attr("class", "link")
.attr("d", path)
.style("stroke-width", function(d) { return Math.max(1, d.dy); })
.sort(function(a, b) { return b.dy - a.dy; });
要更改颜色,只需设置不同的类或stroke
显式设置:
.style("stroke", "red")
这当然也可以是一个函数,以便您可以为不同的路径设置不同的颜色。节点类似:
node.append("rect")
.attr("height", function(d) { return d.dy; })
.attr("width", sankey.nodeWidth())
.style("fill", function(d) { return d.color = color(d.name.replace(/ .*/, "")); })
.style("stroke", function(d) { return d3.rgb(d.color).darker(2); })
在示例中,填充颜色是根据名称设置的——您可以根据需要进行调整。