Highcharts - ярлыки внутри и снаружи круговой диаграммы
Я знаю, что можно поместить метки круговой диаграммы внутри или снаружи пирога, изменив параметр plotOptions.pie.dataLabels.distance. Я пытаюсь выяснить, можно ли изменить это на основе точки по точкам:
, если срез меньше 15%, поместите метки внутри среза
else поместите метку за пределы среза
Возможно ли это в Highcharts? Ниже приведена одна из моих попыток, которая не работает; простой jsfiddle находится здесь: http://jsfiddle.net/supertrue/q6bQP/
plotOptions: {
pie: {
dataLabels: {
distance: -30,
color: 'white',
formatter: function() {
if (this.y < 15 ) {
this.point.dataLabels.color = 'red';
this.point.dataLabels.distance = 20;
return this.point.name;
} else {
return this.point.name;
}
}
},
Ответы
Ответ 1
Этот пост может помочь вам выполнить вашу работу:
Можно ли позиционировать DataLabels в Highcharts в зависимости от значения?
$.each(chart.series[0].data, function(i, point) {
// using the value or calculating the percent
if(point.percentage < 30) {
point.dataLabel.attr({y:20});
}
});
Ответ 2
Этого также можно добиться с помощью событий.
Рабочая скрипка: Наружная скрипка
Здесь, если точка данных меньше пяти, показывать метки вне графиков.
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);
}
}
}