Получите доступ к данным другой строки ряда на Highchart dataLabels - PullRequest
0 голосов
/ 07 октября 2019

Я хочу получить доступ к другим данным строки ряда в серии dataLabels. Вот мой код.

categoriesarr = [1,2,3,4,5];
noofloandisbursed = [10, 20, 30, 40, 50];
pdo = [9, 18, 27, 40, 49];

var chart = new Highcharts.Chart({
            chart: {
                renderTo: 'disbursement'
            },
            title: {
                text: ''
            },
            subtitle: {
                text: ''
            },
            xAxis: {
                categories: categoriesarr
            },
            tooltip: {
                pointFormat: '<b>{point.y}</b>'
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -40,
                y: 0,
                floating: true,
                borderWidth: 1,
                backgroundColor: ((Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#fff'),
                shadow: true
            },
            series: [{
                name: 'No. Of Loan Disbursed',
                type: 'column',
                data: noofloandisbursed
            },
            {
                name: 'Pre-Disbursement Orientation',
                type: 'column',
                data: pdo,
                dataLabels: {
                    enabled: true,
                    formatter: function(e) {
                        //return ((this.point.y/series[0].point.y)*100) + '%';
                    }
                }
            }]
        });

Я хочу показать результат (значение серии 2 / значение серии 1) * 100 в конкатенации dataLabels с% только во второй серии. К сожалению, я не могу получить доступ к значениям y-й серии 1. Когда я попробовал series[0].yData, он возвращает весь массив, а не конкретную строку, совпадающую со второй строкой. Я также пытался передать массив, но он не работал. Нужно решение этой проблемы.

1 Ответ

1 голос
/ 07 октября 2019

Вы можете найти точку из первой серии по index:

series: [{
        ...
    },
    {
        ...,
        dataLabels: {
            enabled: true,
            formatter: function(e) {
                return (
                    (this.point.y /
                        this.series.chart.series[0].points[this.point.index].y) *
                    100) + '%';
            }
        }
    }
]

Демонстрационная версия: http://jsfiddle.net/BlackLabel/rdwxc382/

Справочник по API: https://api.highcharts.com/highcharts/series.column.dataLabels.formatter

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