Я рендеринга диаграмму линии через d3, который связан с массивом объектов в следующем формате:Добавление SVG: круг элементов к d3.js линии
{ name: "somename",
pointStart: 90210,
pointInterval: 187,
data: [1,2,3,4,5]
}
Значения Y являются значениями в data
, а значения Х представляет собой последовательность значений, вычисленные Даты путем добавления pointStart произведению pointInterval и индекс data
в дополнении к черчению пути линии, я пытаюсь наложить «круги» в каждая координата x, y. Строка отображается правильно, и появляется только первый круг.
Проверьте, пожалуйста, plunkr для примера.
Поскольку путь линии уже имеет координаты x, y, я надеялся использовать это и нарисовать круг на каждой паре, однако первая координата круга не найдена, и я не уверен, почему.
Это код, который выбирает линейный массив, получает пары x, y, а затем рисует круг. Данные обязаны массив из 9 элементов, но только 8 кругов добавляются к йоту ...
lines.selectAll('path')
.data(function(d) { console.log(getDataArray(d)); return getDataArray(d); })
.enter()
.append('circle')
.attr({
class:'dot',
cx:line.x(),
cy:line.y(),
r:circleR,
fill: function(d,i,e) { return colors(data[e].name);}
})
Ах спасибо большое за объяснения! – Alan