У меня есть некоторые данные, которые выглядят как [[30 элементов], [30 элементов], [30 элементов] ...] этот массив может содержать любое количество массивов из 1-31 элементов , Внутренние массивы всегда будут такими же, как и количество дней, которые будут обработаны. Каждый внутренний массив также будет иметь свою этикетку, поэтому он хотел бы какРисование квадратная матрица с использованием D3.js
A | 30 элементный массив
B | 30 элементный массив
C | 30 элемента массив
30 элемента массив будет просто SVG прямоугольников я рисовать на экране, так что на самом деле это будет выглядеть
A | прямое прямое прямое ... (1-31 rects)
B | прямое прямое прямое ... (1-31 rects)
C | Прямой прямой прямоугольный ... (1-31 rects)
естественно Я новичок в d3.js, поэтому у меня проблемы, и я думаю, что это потому, что я не понимаю, как правильно использовать data()
. Сейчас я делаю что-то вроде этого
.data(d3.range(d3.range(d[0].length).length) * d3.range(d.length).length)
//this is to know how many rectangles I need to draw
поэтому первый член представляет собой число элементов для внутреннего массива, а второго члена является количество внутренних массивов.
Я не использую весы, потому что я не мог правильно расположить исправления, поэтому, я думаю, я тоже этого не понимаю. чтобы дать вам и понять, что я делаю, чтобы позиционировать их для атрибутов x и y, я делаю такие вещи.
daysProcessed = d[0].length
uniqueLabels = d3.range(d.length).length
x = svgwidth/(daysProcessed +xmargin) * i%dayProcessed +xmargin // i is from .attr("x",function(d, i)
y = rectSize *(i%uniqueLables)
так, как вы можете себе представить, это беспорядок, может кто-нибудь помочь мне с более простым способом, и скажите мне, как правильно использовать .data на квадратной матрице?