Диаграмма пончика D3.js... arc.centroid(d) не подвержена влиянию d.innerRadius и d.outerRadius

Я создаю пончик (или Piechart), и я хочу разместить этикетки за пределами области. Я создал скрипку 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 ответ

Не уверен, что вы подразумеваете под тем, что он всегда дает один и тот же результат, но вы можете разместить метки прямо за пределами графика, умножив координаты центроида на 1,5. Код примерно такой.

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

Обновленный jsfiddle здесь.

Другие вопросы по тегам