У меня есть ряд данных, которые динамически генерируют сгруппированную гистограмму в D3 из массива JSON. Может потребоваться любое количество баров на группу, мои примерные данные требуют 4. Проблема, с которой я сталкиваюсь, заключается в получении списка баров до l oop локально, когда они добавляются. Вот пример данных:
Array(3) [ 90.28, 28.27, 42.44 ]
Array(3) [ 92.09, 82.62, 99.64 ]
Array(3) [ 97.11, 74.71, 98.58 ]
Array(3) [ 66.67, 50.83, 66.67 ]
Array(3) [ 73.21, 51.73, 69.99 ]
Array(3) [ 71.4, 50.73, 73.17 ]
Array(3) [ 97.17, 73.52, 99.57 ]
Array(3) [ 65.29, 58.85, 74.83 ]
Так что в этом случае я создал 8 групп, но когда я go до l oop через фактические бары, чтобы создать 3 отдельных прямоугольника Я не могу понять, как получить доступ ко второму элементу массива и создать мои бары. Я думал, что будет способ просто получить индекс 'j' в (d, i, j), но это просто даст мне ссылку на главный объект, а не на текущую итерацию. После нескольких часов попыток, я снова в SO. Вот базовый c код, который я использую для создания групп и добавления ректов:
var groups = canvas.selectAll("rect")
.data(dataArray)
.enter()
.append("g")
.attr("transform", function(d, i) {
return "translate( 50 ," + (i * 50) + ")";
})
groups.append("rect")
.attr("width", function(d,i,j) { console.log(j); return (j + 1) * 100 })
.attr("height", 10)
.attr("fill", "orange");
});
Заранее спасибо!