У меня есть следующий код, который отлично работает, за исключением случаев, когда я повторяю свой набор данных, первая строка (индекс 0) пропускается.d3.data пропустить первую строку данных
svg.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("x",function(d){
console.log(data);
console.log(d);
return xScale(d.year-1980);
})
Обратите внимание на console.log(data)
возвращает свой полный набор данных, в том числе в первом ряду, так что данные там!
Но console.log(d)
показывает все строки после и включая мою вторую строку данных - она отбрасывает первую строку.
Любые предложения приветствуются.
Я собираюсь предположить, что у вас уже есть элемент 'rect', когда вы запускаете этот код. Этот элемент сопоставляется с первой строкой данных, и поэтому выбор '.enter()' отсутствует. –
D3 очень мощный, но слишком обширный. Его широко не используется и не публикуется. Он полностью использует мощь javascript. Хотелось бы, чтобы у нас было больше учебников по D3. – MarsOne
Переместите console.log (данные) вне вашей функции x (d). Он печатается для каждого d. Возможно, вы пропустили это. Затем отправьте часть своего вывода. –