D3.js圆环图... arc.centroid(d)不受d.innerRadius和d.outerRadius的影响

use*_*712 1 d3.js pie-chart donut-chart

我正在创建一个甜甜圈(或饼图),我想将标签放在该区域之外.我为它创建了一个小提琴http://jsfiddle.net/VeeTee/mA3V7/.

arcs.append("svg:text")
    .attr("transform", function(d) {
        //this is where I want to make a translation to the outside border
        d.innerRadius = radius;
        d.outerRadius = height/2;
        return "translate(" + arc.centroid(d) +")";
    })
    .attr("dy", ".35em")
    .attr("text-anchor", "middle")
    .text(function(d, i) { return d.value.toFixed(2); });
Run Code Online (Sandbox Code Playgroud)

arc.centroid(d) - >总是给出相同的结果(因此翻译相同)

Lar*_*off 7

不确定你的意思是它总是给你相同的结果,但是你可以通过将质心的坐标乘以1.5来将标签放在图表之外.代码是这样的.

.attr("transform", function(d) {
        var c = arc.centroid(d);
        return "translate(" + c[0]*1.5 +"," + c[1]*1.5 + ")";
    })
Run Code Online (Sandbox Code Playgroud)

在这里更新了jsfiddle .

  • 您在“arc”的定义中显式设置内半径和外半径,因此您在该函数中所做的更改无效。 (2认同)