2016-03-03 2 views
0

У меня есть ось категории, где категории показаны по оси y. Отображаемые метки автоматически выбираются с помощью высокочастотных диаграмм из массива категорий. Индекс категории определяет, какая метка отображается на оси. Индекс рассчитывается автоматически по высокочастотным диаграммам, и он неплохо справляется с этим. Но иногда следующий индекс превышает длину массива категорий, и когда это происходит, номер индекса отображается на оси. Это делает его плохой среди других ярлыков.Highcharts: Ограничение n-й метки на оси категории

Использование шагов

labels: { 
    step: <number> 
} 

помогает предотвратить эту проблему, но я предпочитаю Highcharts автоматический расчет, есть в любом случае я могу не показывать индекс, который превышает длину категории массива?

ответ

1

Я думаю, что это вызвано yAxis.endOnTick, который устанавливается истина по умолчанию: https://jsfiddle.net/ky40k1mk/3/ против https://jsfiddle.net/ky40k1mk/2/

Конечно, вместо удаления последнего тика (поэтому график не закончится в никуда), мы можем заменить последний тик, используя xAxis.tickPositioner см демо: https://jsfiddle.net/ky40k1mk/4/ (или: https://jsfiddle.net/ky40k1mk/5/)

И tickPositioner:

tickPositioner: function() { 
    var ticks = this.tickPositions, 
     last = ticks.length - 1; 

    if (ticks[last] > this.dataMax) { 
    ticks.splice(last, 1, this.dataMax); // replace last tick with current max 
    } 
    return ticks; 
} 
+0

Спасибо, последний тик в настоящее время заканчивается в нужном месте, но его немного слишком близко. Если есть способ сделать эту форму в пространстве, как и другие, то это здорово. Иначе это хороший способ обхода. Команда Hope Highcharts быстро устраняет эту ошибку – Abbas