d3.js v7 相当于 d3.scale.ordinal()

d3.js v7 equivalent of d3.scale.ordinal()

d3.scale.ordinal() 的 d3.js v7 等价物是什么?我如何将它用于颜色范围?

在 v3.5.11 中我可以使用:

var colourScale = d3.scale.ordinal()
        .domain(["One", "Two", "Three"])
        .range(["#abacab", "#b67a4e", "#5a6fbb"])

        nodeUpdate.select("circle")
            .attr("r", 6.5)
            .attr("fill-opacity", "0.7")
            .attr("stroke-opacity", "1")
            .style("fill", function(d) {
                    return (typeof d._children !== 'undefined') ? (colourScale(findParent(d))) : '#FFF';
            })
            .style("stroke", function(d) {
                    return colourScale(findParent(d));
            });

我看到了使用 InternMap as part of the changes for v7 的参考,但不清楚这是否会替换 scale.ordinal(以及后续版本 scaleOrdinal 和 scaleBand)以及它在上面的使用方式。

d3.scale.ordinal()v4. Examples here.

中更改为 d3.scaleOrdinal

所以现在你可以把上面的写成:

const colourScale = d3.scaleOrdinal()
        .domain(["One", "Two", "Three"])
        .range(["#abacab", "#b67a4e", "#5a6fbb"])

Working Codesandbox running v7 here.

希望对您有所帮助! ✌️