Есть ли способ получить информацию о точке внутри функции форматирования метки y aixs? - PullRequest
0 голосов
/ 10 июля 2019

Я рендерил Гантт старших диаграмм и хочу изменить метки оси Y

в функции форматирования метки, которую я получаю, неопределен и хочу знать, как получить эту информацию

yAxis: {
    useHTML: true,
    labels: {
        formatter: function() {
            console.log(this);
            return `
            <a class="left">
                <strong> ${this.value} </strong> 
                <br/> 
                <i>Job Type</i>
            </a>`;
        }
    }
}

1 Ответ

1 голос
/ 11 июля 2019

Функция formatter вызывается несколько раз, и точки не существуют при первом вызове. Тем не менее, вы можете получить очки на this.chart.series[X].points в последующих звонках и сравнить this.pos с point.y:

yAxis: {
    labels: {
        useHTML: true,
        formatter: function() {
            var seriesPoints = this.chart.series[0].points,
                points,
                result = '<a class="left"><strong>',
                pos = this.pos;

            if (seriesPoints) {
                points = seriesPoints.filter(function(p) {
                    return p.y === pos;
                });

                points.forEach(function(p) {
                    result += p.name + '<br/>'
                });

                result += '</strong><i>Job Type</i></a>'

                return result
            }
        }
    }
}

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

Справочник по API: https://api.highcharts.com/gantt/yAxis.labels.formatter

...