如何在d3 radialProgress中显示十进制数?

时间:2016-01-07 18:10:54

标签: javascript d3.js

我正在使用d3组件radialProgress.js

但它无法显示十进制数字,例如:

1.37%它只显示1%。

是否有一些配置我可以改变它?

感谢。

[编辑]

我发现了这个功能:

function labelTween(a) {
    var i = d3.interpolate(_currentValue, a);
    _currentValue = i(0);

    return function(t) {
        _currentValue = i(t);
        this.textContent = Math.round(i(t)) + "%";
    }
}

Wich用于:

 label.transition().duration(_duration)
                .tween("text",labelTween);

labelTween 函数中的 a 参数是标签文本上的值。但是,当调用 labelTween 函数时,该值已经四舍五入。

1 个答案:

答案 0 :(得分:1)

这是不可配置的,代码中的值是四舍五入的。你需要替换

.text(function (d) { return Math.round((_value-_minValue)/(_maxValue-_minValue)*100) + "%" })

.text(function (d) { return (_value-_minValue)/(_maxValue-_minValue)*100 + "%" })

禁用舍入。还有一些其他地方也需要这样做:

label.datum(Math.round(ratio*100));

应该是

label.datum(ratio*100);

this.textContent = Math.round(i(t)) + "%";

应该是

this.textContent = i(t) + "%";