code: function(d) {
            var i = d3.interpolate(this._current, d);
            this._current = i(0);
            return function(t) {
              return 'translate(' + arc.centroid(i(t)) + ') rotate(' + labelAngle(d) + ')';
            };
          }
docs: extracted from: http://bl.ocks.org/mbostock/1346410 Store the displayed angles in _current. Then, interpolate from _current to the new angles. During the transition, _current is updated in-place by d3.interpolate.