Highcharts - метки внутри и снаружи круговой диаграммы - PullRequest
11 голосов
/ 06 марта 2012

Я знаю, что можно размещать метки круговой диаграммы как внутри, так и снаружи, изменяя plotOptions.pie.dataLabels.distance. Я пытаюсь выяснить, возможно ли это изменить по точкам:

если срез меньше 15%, поместите метки внутри среза

иначе поместите этикетку вне среза

Возможно ли это в 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;
                }

        }
  },

Ответы [ 2 ]

2 голосов
/ 21 июня 2012

Этот пост может помочь вам дополнить вашу работу:

Можно ли позиционировать метки данных 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});
    }
});
0 голосов
/ 19 декабря 2018

Этого также можно добиться, используя события.

Рабочая скрипка: Наружная скрипка

Здесь, если точка данных меньше пяти, показывать метки вне диаграмм.

  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);
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...