我有一些数据看起来像 [[30 个元素]、[30 个元素]、[30 个元素]...] 这个数组可以包含任意数量的 1-31 个元素的数组。内部数组将始终与表示将处理的天数相同。每个内部数组也将有它的标签,所以它想
一个 | 30 元素数组
B | 30 元素数组
C | 30 元素数组
30 个元素的数组将只是我在屏幕上绘制的 svg 矩形,所以它看起来像
一个 | rect rect rect rect... (1-31 rects)
B | rect rect rect rect... (1-31 rects)
C | rect rect rect rect... (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 的正确方法吗?