首页 > 解决方案 > D3根据节点名称改变颜色

问题描述

我有一个使用 D3 的可缩放旭日形图像,现在我想更改颜色。我正在可视化一些日志数据,因此它具有类似or的success错误代码。我想将成功部分涂成绿色,错误部分涂成红色。默认情况下,以下代码用于选择颜色BAERROR001BAERROR002

var color = d3.scaleOrdinal().range(d3.quantize(d3.interpolateRdYlGn, data.children.length + 1));

 const path = g.append("g")
        .selectAll("path")
        .data(root.descendants().slice(1))
        .enter().append("path")
        .attr("fill", d => { while (d.depth > 1) d = d.parent; return color(d.data.name); })
        .attr("fill-opacity", d => arcVisible(d.current) ? (d.children ? 0.6 : 0.4) : 0)
        .attr("d", d => arc(d.current));

对于成功,我的节点的名称为成功,对于错误,它将是相应的错误代码。我正在尝试使用分类颜色,但它没有按预期工作。我使用的代码如下:

 var color = d3.scaleOrdinal().domain([1, 10])
        .range(["green", "red"])

如何根据name已通过的颜色选择颜色?

标签: javascriptd3.js

解决方案


推荐阅读