我正在创建一个甜甜圈(或饼图),我想把标签放在该区域之外。 我为它创建了一个小提琴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) - >总是给出相同的结果(因此翻译相同)
答案 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。