如何在半圆形图表的两半上设置标签?

时间:2016-11-08 16:45:05

标签: d3.js

我正在制作半圈圆环图,目前看起来像这样:https://jsfiddle.net/rcxp0udt/

您可以注意到所有标签都位于图表的右侧。但是,我想让它们看起来像这样:http://prntscr.com/d4p8qb - 所以半圆的前半部分的标签位于一侧,另一半位于另一侧。以下是代码的一部分,负责:

 polyline.transition().duration(1000)
    .attrTween("points", function(d){
        this._current = this._current || d;
        var interpolate = d3.interpolate(this._current, d);
        this._current = interpolate(0);
        return function(t) {
            var d2 = interpolate(t);
            var pos = outerArc.centroid(d2);
            pos[0] = radius * 0.95 * (midAngle(d2) < Math.PI ? 1 : -1);
            return [arc.centroid(d2), outerArc.centroid(d2), pos];
        };
    });

但是,到目前为止,我在测试中尝试的每个解决方案都实现了这个目标,最终失败了。如果你有任何想法如何达到这个效果,请告诉我!

1 个答案:

答案 0 :(得分:2)

不使用'backBarButtonItem' used within its own type,而是使用midAngle(d2) < Math.PI

screenshot of updated pie chart

进行此更改,添加文本并绘制​​文本折线(第165,175和202行)。