HighCharts: общая стоимость не отображается на круговой диаграмме - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь отобразить общее количество пользователей в круговой диаграмме.Но мое «получение полного кода» не работает.Ничего не отображается.

Вот код, который я использую:

events: {
        load: function(event) {
          var total = 0;
            for(var i=0, len=this.series[0].yData.length; i<len; i++){
                total += this.series[0].yData[i];
            }
          var text = this.renderer.text(
            'Total: ' + total,
            this.plotLeft,
            this.plotTop - 20
        ).attr({
            zIndex: 5
        }).add()
        }
          }

Если я могу показать вам мой полный код, вот он:

var data = <?php echo $data ; ?>

data.forEach(function(el) {
el.name = el.label;
el.y = Number(el.value);
});

Highcharts.chart('pieDiv', {
chart: {

    plotBackgroundColor: null,
    plotBorderWidth: null,
    plotShadow: false,
    type: 'pie',
    events: {
        load: function(event) {
          var total = 0;
            for(var i=0, len=this.series[0].yData.length; i<len; i++){
                total += this.series[0].yData[i];
            }
          var text = this.renderer.text(
            'Total: ' + total,
            this.plotLeft,
            this.plotTop - 20
        ).attr({
            zIndex: 5
        }).add()
        }
          }
},
title: {
    text: undefined
},
credits: {
  enabled: false
},
exporting: { enabled: false } ,
tooltip: {
    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b> ({point.y} 
Users)'
},
plotOptions: {
    pie: {
colors: 
Highcharts.map(["#59deed","#e86e65","#de8f14","#589bcf","#a05195","#35cc95", 
"#72a7b3"], function (color) {
    return {
        radialGradient: {
            cx: 0.5,
            cy: 0.3,
            r: 0.7
        },
        stops: [
            [0, color],
            [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
        ]
    };
 }),
         states: {
        inactive: {
            opacity: 1
        }
    },
        allowPointSelect: true,
        cursor: 'pointer',
        fillOpacity: 1,
         showInLegend: true,
        dataLabels: {
            enabled: true,
            format: '<b>{point.name}</b>: {point.percentage:.1f} % <br/> 
({point.y} Users)',
             style: {
                color: (Highcharts.theme && 
Highcharts.theme.contrastTextColor) || 'black'
            }
        }

    }
},
series: [{
    name: 'Users',
    colorByPoint: true,
    data: data
}]
});

Iмогу получить данные на круговой диаграмме.но общее количество не отображается.Он должен был появиться в верхнем левом углу коробки

1 Ответ

0 голосов
/ 30 апреля 2019

Вы сделали простую ошибку в js для кода цикла, используя , вместо ;.Проверьте код и рабочую демоверсию с полным отображением данных.

Код:

  chart: {
    events: {
      load: function() {
        var total = 0,
          len = this.series[0].yData.length,
          text;

        for (var i = 0; i < len; i++) {
          total += this.series[0].yData[i];
        }

        text = this.renderer.text(
          'Total: ' + total,
          this.plotLeft,
          this.plotTop - 20
        ).attr({
          zIndex: 5
        }).add();
      }
    }
  }

Демо:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...