Отображение часов и минут по оси х с помощью Highcharts

Я хочу вывести на диаграмме области следующие данные (время, уровень заряда батареи):

data: [
    [08.15, 14.8],
    [08.20, 13.9],
    [08.25, 12.8],
    [08.30, 11.8],
    [08.35, 13.9],
    [08.40, 14.1],
    [08.45, 13.9],
    [08.50, 14],
    [08.55, 14],
    [09.00, 14.1],
    [09.05, 14.4]
]

ось x должна начинаться в 00:00 AM 00:00 PM, целый день.

К сожалению, я не понимаю, какие опции использовать, когда я просматриваю API. Теперь я получаю ось x, которая идет от 8.00 ~ 8.55.8.60.8.65 ~ 9.00. Поэтому вместо десятичной системы используется десятичная система.

Как настроить, чтобы строка состояла из 24 часов с 60 минутами?

С текущими данными диаграмма будет пустой, только имея точки с 8.00 до 9.00.

Я надеюсь, что кто-то может помочь мне на моем пути.

Спасибо,

Mattijs

Ответы

Ответ 1

вы можете попробовать этот код, чтобы сделать ось x в формате 12hour

xAxis: {
    title: {
        enabled: true,
        text: 'Hours of the Day'
    },
    type: 'datetime',

    dateTimeLabelFormats : {
        hour: '%I %p',
        minute: '%I:%M %p'
    }
},

Также для "подсказки" попробуйте следующее:

tooltip: {
    formatter: function() {
        return ''+
                "" +
                'Time: '+ Highcharts.dateFormat('%I:%M %p', this.x);
    }
},

И, конечно же, серия будет:

series: [{
        data: [
            [Date.UTC(2013, 3, 22, 1, 15), 12.7], 
            [Date.UTC(2012, 3, 24, 3, 20), 13.5], 
            [Date.UTC(2012, 2, 22, 2, 25), 18.8]
        ]
    }]

Надеюсь, он сможет решить вашу проблему. Спасибо.

Ответ 2

Highcharts имеет встроенный способ создания времени или дат в виде xaxis. Как правило, в этом случае ваши данные будут использовать значение времени в миллисекундах, а высокие диаграммы будут отображать его соответствующим образом (см. Этот пример).

Если вы хотите иметь 24-часовой день, включая ваши данные, он может выглядеть примерно так:

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container'
    },
    xAxis: {
        type: 'datetime' //ensures that xAxis is treated as datetime values
    },

    series: [{
        data: [
            [Date.UTC(2012, 5, 22, 8, 15), 14.8], 
            [Date.UTC(2012, 5, 22, 8, 20), 13.9], 
            [Date.UTC(2012, 5, 22, 8, 25), 12.8]
            //and so on...
        ]
    }]
});

Затем вы можете сделать что-то вроде пользовательского форматирования xAxis или date formatatter, чтобы отобразить метки, как вам нужно.