【问题标题】:d3 text label format based on valued3基于值的文本标签格式
【发布时间】:2014-10-06 15:44:42
【问题描述】:

我有这张图表,我需要根据变量将一些标签加粗。但是我不确定如何在 D3 中实现这一点。我认为可能需要使用 .each 函数。 .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; });

【问题讨论】:

  • 能否为字体粗细属性或样式创建一个函数,当条件为真时返回粗体?

标签: javascript text d3.js labels


【解决方案1】:

这种方法似乎行得通...

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

这就是答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多