Линия даты и времени Highcharts перемещается назад с несортированными данными - PullRequest
2 голосов
/ 07 августа 2020

Я знаю, что мне следовало отсортировать данные, но я получаю их из разных вызовов API, и есть еще 10 причин, по которым я не могу отсортировать данные.

У меня есть несортированные данные, которые мне нужно график на графике таймсерий.

{
    xAxis: {
        type: 'datetime'
    },
    series: [{
        data: [
            [Date.UTC(2020, 0, 1), 29.9],
            [Date.UTC(2020, 0, 2), 71.5],
            [Date.UTC(2020, 0, 6), 106.4],
            [Date.UTC(2020, 0, 3), 129.2],
            [Date.UTC(2020, 0, 5), 144.0],
            [Date.UTC(2020, 0, 8), 176.0]
        ]
    }]

}

Когда я использую указанные выше параметры для высоких диаграмм, линия перемещается назад введите описание изображения здесь

Есть ли способ заставить диаграммы highcharts выполнять требуемую сортировку и правильно строить диаграмму? Я тоже пробовал опцию dataSorting, но она не сработала.

Highcharts имеет флаг dataSorting для сортировки данных, так что это не совсем безумие с моей стороны, чтобы ожидать этого.

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Highcharts требует отсортированных данных в порядке возрастания X. Вам необходимо предварительно отсортировать данные, например:

var data = [
    [Date.UTC(2020, 0, 1), 29.9],
    [Date.UTC(2020, 0, 2), 71.5],
    [Date.UTC(2020, 0, 6), 106.4],
    [Date.UTC(2020, 0, 3), 129.2],
    [Date.UTC(2020, 0, 5), 144.0],
    [Date.UTC(2020, 0, 8), 176.0]
];

data.sort((a, b) => a[0] - b[0]);

Highcharts.chart('container', {
    ...,
    series: [{
        data
    }]
});

Живая демонстрация: http://jsfiddle.net/BlackLabel/cf8tq6a2/

0 голосов
/ 07 августа 2020

Вам не хватает свойства dataSorting?

{
    xAxis: {
        type: 'datetime'
    },
    series: [{
        dataSorting: {
            enabled: true,
            sortKey: 'value'
        },
        data: [
            [Date.UTC(2020, 0, 1), 29.9],
            [Date.UTC(2020, 0, 2), 71.5],
            [Date.UTC(2020, 0, 6), 106.4],
            [Date.UTC(2020, 0, 3), 129.2],
            [Date.UTC(2020, 0, 5), 144.0],
            [Date.UTC(2020, 0, 8), 176.0]
        ]
    }]

}
...