我正在制作半圈圆环图,目前看起来像这样: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];
};
});
但是,到目前为止,我在测试中尝试的每个解决方案都实现了这个目标,最终失败了。如果你有任何想法如何达到这个效果,请告诉我!