highchart js, tickinterval 2 лет (нечетные годы) по оси x

Я хочу начать ось x с 2005 года с тикинтервала 2 лет, который должен дать 2005, 2007, 2009 и так далее в результате оси x.

tickInterval: Date.UTC(2007, 1, 1) - Date.UTC(2005, 1, 1)

это должно дать нечетные даты правильно?

https://jsfiddle.net/nikbaidya0346/LLExL/6119/

1 ответ

  1. Вы определяете значения min / max как четные годы, поэтому tickInterval вычисляется оттуда. Используйте tickPositioner для извлечения позиции всех ТИКов из processedXData, затем отфильтруйте их, проверив текущий год. Для этого используйте функции new Date() и getFullYear ().

             tickPositioner: function(min, max) {
                var each = Highcharts.each,
                    points = this.series[0].processedXData,
                  ticks = [],
                  date ;
                each(points, function(d, i) {
                  date = new Date(d);
    
                  if(date.getFullYear() % 2 === 1) {
                    ticks.push(d);
                  }
                });
    
                return ticks;
            },
    

    Образец