многомерный массив d3 в сгруппированную гистограмму - PullRequest
0 голосов
/ 13 марта 2020

У меня есть ряд данных, которые динамически генерируют сгруппированную гистограмму в 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");
});

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...