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

时间:2013-04-17 14:05:19

标签: 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); });

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

1 个答案:

答案 0 :(得分:7)

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

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

更新了jsfiddle here