У меня есть следующий набор данных, и я хочу построить линейную диаграмму количества заимствованных книг у пользователей до 2019 года
0: Object {date: 2019-01-02, books: 86, user: "enrollment_1"}
1: Object {date: 2019-01-02, books: 80, user: "enrollment_2"}
2: Object {date: 2019-01-02, books: 30, user: "enrollment_3"}
3: Object {date: 2019-01-02, books: 6, user: "enrollment_4"}
4: Object {date: 2019-01-02, books: 3, user: "enrollment_5"}
5: Object {date: 2019-01-02, books: 3, user: "enrollment_6"}
6: Object {date: 2019-01-03, books: 88, user: "enrollment_1"}
7: Object {date: 2019-01-03, books: 36, user: "enrollment_2"}
8: Object {date: 2019-01-03, books: 9, user: "enrollment_4"}
9: Object {date: 2019-01-03, books: 7, user: "enrollment_3"}
10: Object {date: 2019-01-03, books: 3, user: "enrollment_6"}
11: Object {date: 2019-01-04, books: 95, user: "enrollment_1"}
12: Object {date: 2019-01-04, books: 59, user: "enrollment_2"}
13: Object {date: 2019-01-04, books: 7, user: "enrollment_5"}
14: Object {date: 2019-01-04, books: 7, user: "enrollment_3"}
...
Посмотрите, как не каждый вид пользователей одалживает книгу каждый день и мой набор данных не каждый день года.
Поскольку я действительно новичок в d3. js Я не знаю, как подготовить или передать мои данные для неполных рядов данных и / или многовариантных данных различной длины. Раньше я делил серию с пользователями / видом / типом и количеством, а другой массив - по данным, но он не работает.
Что я сейчас делаю:
area = d3.line()
.defined(d => !isNaN(d))
.x(d => xScale(d.date))
.y(d => yScale(d.books))
...
const path = svg.append('g')
.selectAll("path")
.data(data)
.join()
.attr('d', d => area(d.user))
Но ничего не происходит , Мой график пуст.
С другой стороны, я знаю, как довольно хорошо построить это в Python (это язык, который я использую для подготовки этого набора данных) с помощью matplotlib или seaborn, но я хочу научиться, как сделайте то же самое с d3 js.