这是用Javascript编写的代码部分,用于在sankey图中创建矩形节点。
代码:
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); })
.append("title")
.text(function(d) { return d.name + "\n" + format(d.value); });
每个节点都包含一个名称“location | month”。所以这里从d3.scale.category20();
中分配随机颜色所以我想为位置相同的所有节点分配相同的颜色。 例如loc3 | May
因此所有位置为loc3的节点必须是相同的颜色。
答案 0 :(得分:0)
在该代码中,填充颜色是通过传递
的结果来确定的d.name.replace(/ .*/, ""));
到color
比例功能。
如果您希望根据名称的位置部分颜色相同,则需要修改上述代码以仅提取位置。
根据您对name属性的描述,您可以简单地在|
字符上拆分名称并返回第一部分:
d.name.split("|")[0];