Как изменить метки оси X в старших графиках в месяц, неделю, квартал при условии? - PullRequest
0 голосов
/ 07 июня 2019

Я хочу изменить метку оси X в старших графиках в зависимости от месяца, недели и квартала. Я пробовал следующий код:

xAxis: {
    scopeQ: this,
    type: 'datetime',
        tickInterval: 24 * 3600 * 1000 * 30 * 4,
    dateTimeLabelFormats: function() {          
    if(flag=='monthly') {
        return {month: '%b \'%y'}
    }
    else if(flag=='weekly') {
        return {week: '%e \' %b'}
        }
    else if(flag=='quarterly') {
        return {month: '%b \'%y'}
    }           
    },
    units: [
    [
        'month', [1]
    ],
    [
        'week', [1]
    ]
    ],
    labels: {
        formatter: function() {
        if(flag=='monthly') {
           return Highcharts.dateFormat('%b \'%y', this.value)
        }
            else if(flag=='weekly') {
           return Highcharts.dateFormat('W%w \'%y', this.value)
        }
        else if(flag=='quarterly') {
           var quarter = Math.ceil((new Date(this.value).getMonth() + 1) / 3);
           return Highcharts.dateFormat('Q' + quarter + ' %Y' , this.value)
             }
    },
    rotation: 315,
    style: {
        fontFamily: 'Roboto',
    },

},

},

Я хочу получить вывод для месяц как - январь 18 февраля февраль 18 неделю как - w1'18 w2'18 квартал как - Q1'18 Q2'18

Заранее спасибо.

1 Ответ

0 голосов
/ 10 июня 2019

Используя свойство units, вы должны поддерживать правильный порядок:

xAxis: {
    ...,
    units: [
        [
            'week', [1]
        ],
        [
            'month', [1]
        ]
    ]
}

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

Справочник по API: https://api.highcharts.com/highcharts/xAxis.units

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