Highcharts - добавить% к метке первой оси? - PullRequest
1 голос
/ 03 марта 2012

При оформлении оси диаграммы распространенным стилем в публикациях является включение знака единицы или процента только на самый верхний ярлык оси Y.Я пытаюсь понять, как это сделать в Highcharts.

Я знаю, что могу жестко закодировать число, например:

 yAxis: {
    labels: {
        formatter: function() {
            if ( this.value == 12 ) {
               return this.value + "%";
            } else {
               return this.value;
            }
        }
    },

Но это не очень гибкое решение.

Есть ли способ проверки первого (или n-го) отображаемого значения?Есть ли способ получить индекс значения в функции форматирования?

2013 Обновление

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

if ( this.value == this.axis.getExtremes().max )
    return this.value + '%';
else 
    return this.value;

Однако это не работает, если для yAxis.endOnTick установлено значение false, потому что в этом случае максимальное значение оси не совпадает с максимальным меткой на оси.

Есть ли способ получить самую высокую метку из функции форматирования?

Ответы [ 4 ]

3 голосов
/ 03 марта 2012

Насколько я знаю, найти n-й элемент на оси невозможно, но первым и последним может быть купол, используя свойства this.isFirst и this.isLast' in stead of checking this.value`

Если вы хотите, вы также можете получить доступ к самой оси напрямую, используя this.axis, так что вы сможете запускать любую сложную логику на самой оси.

2 голосов
/ 22 сентября 2016

С версией старшей диаграммы 4.2.x я достиг этого с помощью следующего кода

labels: {
    formatter: function () {
        if(this.isFirst)
            return this.value + "%";
        else
            return this.value;
        }
    }
}
0 голосов
/ 16 апреля 2013

Вы можете рисовать при максимальном значении plotLine и после изменения крайностей - удалить и добавить новый). Затем пометьте эту сюжетную линию, которую вы можете установить как «%», и переместите влево.

Другим решением является использование заголовка оси - установите его сверху и уберите вращение.

Последнее решение (или, скорее, обходной путь) состоит в том, чтобы использовать второй yAxis и установить там min и max (или tickPositions), и показывать только последний ярлык и первое скрытие.

0 голосов
/ 04 марта 2012

Вы также можете добавить [%] к имени оси. Тогда вам не придется вмешиваться в тики.

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