score:0

This can be achieve using events as well.

Working fiddle : Outside Fiddle

Here if data point is less than five the show labels outside the charts.

  chart: {
  type: 'pie',
  events: {
    load: function() {
      var series = this.series[0];
      setTimeout(function(){
        (series.points).forEach(function(point, i){
          if (point.y < 5) {
            point.update({dataLabels:{distance: 2}});
          }
        });
      }, 200);
    }
  }
}

score:2

This post can helps you to acomplish your work :

Is it possible to position Highcharts dataLabels depending on the value?

$.each(chart.series[0].data, function(i, point) {
    // using the value or calculating the percent        
    if(point.percentage < 30) {
        point.dataLabel.attr({y:20});
    }
});

Related Query

More Query from same tag