Я застрял в попытке связать двумерные данные в d3. Я хочу отобразить матрицу зеленых квадратов. Я строю такую матрицу:d3: как визуализировать простую двумерную матрицу?
var size = 10;
dataset = [];
for(var y = 0; y<size; y++){
var tempData = [size];
for(var x = 0; x<size; x++){
tempData[x] = 5;
};
dataset.push(tempData);
};
Я не уверен, как правильно привязывать данные. Я вроде понимаю, что Майк Босток tutorial on nested selections, но он привязывает матрицу фиксированного размера к уже существующим элементам. Как использовать enter()
для создания новых прямоугольников? Вот как я попытался применить совет учебника, чтобы сначала связать внешние, а затем внутренние массивы .. не удивил, что он не работает, но я также не знаю, куда идти отсюда.
svg.selectAll("rect")
.data(dataset)
.selectAll("rect")
.data(function (d,i) {return d;})
.enter()
.append("rect")
.attr("x", function(d,i){
return i*20})
.attr("y", function(d,i){
return i*20;})
.attr("height", 15)
.attr("width", 15)
.attr("fill", "green");
Является ли это принуждением использовать 2-мерный массив ... его можно достичь с помощью одномерного массива тоже http://plnkr.co/edit/FFzGpo2pGTni0wj2Pl4c?p=preview – Cyril
Я не думаю, что это сейчас , спасибо за Ваш ответ! – speedymcs