В приложении я регистрирую события кликов в день для каждого пользователя, и я хотел бы визуализировать их с помощью d3. Линейная диаграмма показывает линию для каждого пользователя. ось y - это сумма кликов, а ось x - день. В некоторые дни пользователи не используют приложение, поэтому в этот день нет данных. Но d3 требует, чтобы все массивы имели одинаковую длину и содержали одну и ту же структуру данных. как я могу эффективно заполнить пробелы?Сравнение и преобразование нескольких массивов
Пример данных:
user01: [[01.Jun, 54],[02.Jun, 32], [05.Jun, 14], [07.Jun, 87]]
user02: [[01.Jun, 89],[02.Jun, 4], [03.Jun, 93], [05.Jun, 23], [06.Jun, 57]]
user03: [[03.Jun, 57],[06.Jun, 11], [07.Jun, 45]]
должны быть преобразованы в:
user01: [[01.Jun, 54],[02.Jun, 32], [03.Jun, 0], [05.Jun, 14], [06.Jun, 0], [07.Jun, 87]]
user02: [[01.Jun, 89],[02.Jun, 4], [03.Jun, 93], [05.Jun, 23], [06.Jun, 57], [07.Jun, 0]]
user03: [[01.Jun, 0],[02.Jun, 0], [03.Jun, 57], [05.Jun, 0], [06.Jun, 11], [07.Jun, 45]]
Иногда нет никакого события, нажмите на определенный день, в этом примере на 04.Jun ни один пользователь не был на сайте так что данные не нужны.
Моя идея была бы ...
1.) генерировать массив всех встречающихся уникальных рентгеновских значений [01.Jun, 02.Jun, 03.Jun, 05.Jun, 06.Jun, 07.Jun]
2.) проверить массив каждого пользователя, если есть запись в этот день
3.), если не чем создать запись с 0.
Поскольку данные в прямом эфире обновляется, а число пользователей является переменным: есть ли эффективный способ сделать это, желательно с ramda?
Благодарим за помощь!
Muff
EDIT: Дни Дата Объекты
Посмотрите главу [* Padding для нулевых значений *] (https: // leanpub.com/D3-Tips-and-Tricks/read#leanpub-auto-padding-for-zero-values) из книги [* D3 Советы и подсказки *] (https://leanpub.com/D3-Tips- и-Трики/чтение). Глава была вдохновлена следующим вопросом о SO: [* «Как добавить нулевые значения в временные ряды в d3.js/JavaScript» *] (/ q/23227991). – altocumulus
Это решение, спасибо! – Raggamuffin