d3基于值的文本标签格式

d3 text label format based on value

本文关键字:文本标签 格式 于值 d3      更新时间:2023-09-26

我有这个图表,我需要根据变量将其标记为粗体。然而,我不确定如何在D3中实现这一点。我认为可能需要使用。each函数。line.style("font-weight","bold")使所有文本标签变为粗体,但我只希望某些值变为粗体。关于这个的正确语法有什么想法吗?

    g.append("svg:text")
        .each(function(d) { d.angle = (d.startAngle + d.endAngle) / 2; })
        .attr("dy", ".35em")
        .style("font-family", "helvetica, arial, sans-serif")
        .style("font-size", "10px")
        //.style("font-weight", "bold")
        .attr("text-anchor", function(d) { return d.angle > Math.PI ? "end" : null; })
        .attr("transform", function(d) {
          return "rotate(" + (d.angle * 180 / Math.PI - 90) + ")"
              + "translate(" + (r0 + 36) + ")"
              + (d.angle > Math.PI ? "rotate(180)" : "");
        })
        .text(function(d) { return rdr(d).gname; });

这种方法似乎有效。。。

        .style("font-weight", function(d) {if(selectedvaluessplit.indexOf( rdr(d).gname ) > -1) {return "bold"}})

这是答案