2016-10-09 53 views

回答

0

,可以用不同的方式來實現。其中一個,我拿了from this post,來到這裏。

http://jsfiddle.net/6180x5n0/1/

var positionLabels = function(chart) { 
    var series = chart.series[0], 
     dataLabelsGroup = series.dataLabelsGroup, 
     xVal; 
    Highcharts.each(dataLabelsGroup.element.children, function(d) { 
     xVal = (d.attributes.transform.value).substring((d.attributes.transform.value).indexOf('(') + 1, (d.attributes.transform.value).indexOf(',')); 
     $(d).attr('transform', 'translate(' + xVal + ',135)') 
    }) 
    }; 

請注意,該功能將135px的數據標籤的y座標。

您需要相應地改變圖表的屬性:

 chart: { 
      type: 'pie', 
      events: { 
     load: function() { 
      positionLabels(this) 
     }, 
     redraw: function() { 
      positionLabels(this) 
     } 
     }, 
     }, 

作爲替代方案,你可能只是想設置的數據系列標籤的y座標0see fiddle here)。重繪時,這將會使圖表更加靈活:

  dataLabels: { 
       formatter: function() { 
        return this.y > 5 ? this.point.name : null; 
       }, 
       color: '#ffffff', 
       distance: -70, 
       y: 0 
      } 

對於進一步的閱讀,您可能會感興趣的:

Placing labels inside pie chart slices (Highchart)

+0

太感謝你了nilsole! –