временные ряды chart.js пропускают дни - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть очень простая гистограмма, где каждая точка данных состоит из даты (дня) и числа.Возможно, единственная особенность заключается в том, что покрывается не каждая дата (т. Е. В течение нескольких дней отсутствует точка данных).

При рисовании графика отображаются только те дни, с которыми связана точка данных.Все остальные дни просто опущены.Таким образом, ось x не распределена равномерно и пропускает значения.

Faulty graph

Как я могу убедиться, что ось X действительно линейная и не оставляет никаких дней?out?

PS: Вот как определяется мой график:

chartData.datasets[0].data.push( {t: new Date('2019-02-01'), y: value});
// And so on...

var chart = new Chart(ctx, {
        type: 'bar',
        data: chartData,
        options: {
            annotation: {
                annotations: []
            },
            legend: {
                display: false
             },
            scales: {
                xAxes: [{
                    type: 'time',
                    unitStepSize: 1,
                    distribution: 'series',
                    time: {
                        unit: 'day'
                    },
                }]
            }
        }
    });

1 Ответ

0 голосов
/ 08 февраля 2019

Однажды у меня была похожая проблема, решение, которое работало для меня, это сначала создать экземпляр массива, заполненного нулями (Мой массив содержал данные в течение пяти рабочих дней, поэтому я создал массив размером 5, заполненный нулями. Затем позже вcode массив был перезаписан, если существовали данные за определенный день, в противном случае он имел значение 0).

Я полагаю, что это может сработать для вас, если передаваемые данные имеют известный размер, поэтому вы можете создать их заранее и заполнить нулями.

Имейте в виду, что это может быть не лучшим решением

...