,可以用不同的方式來實現。其中一個,我拿了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
座標0
(see 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)
太感謝你了nilsole! –