所以我在玩 d3.js 桑基图。
在此示例中(如上图所示),颜色是使用定义的
var color = d3.scale.category20();
对于每个节点,都有一个矩形,并且通过改变样式来填充该矩形:
.style("fill", function(d) {
return d.color = color(d.name.replace(/ .*/, ""));
})
我正在寻找有关使用自定义颜色的建议。如果我只想使用 6 种颜色,但根据 .json 文件中的值选择节点矩形颜色。
例如,假设我想展示 NFL 球队的蛇形图表。每种颜色代表球队所在的分区。因此,如果他们移动到不同的分区,颜色会发生变化。并且为每个季节创建节点。类似的东西。
那么是否可以运行
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); });
基于 json 文件中的值的颜色?我只是在想一个 if 语句,但有没有更简单的方法?我可以在 json 中包含十六进制颜色代码吗?