0
說我有以下的JSON陣列選擇:d3.js嵌套二維數組
var json = [
[1,2,3],
[1,2,3],
[1,2,3]
];
我怎樣才能使SVG的網格,而不執行2個selectAll
電話rect
節點?在這fiddle我能夠使網格,但我不得不渲染每個行中的g
節點。有沒有辦法在沒有第一個選擇的情況下編寫它?如果我嘗試:
svg.data(json)
.selectAll('rect')
.data(function(data) { return data; })
.enter()
.append('rect')
.attr('x', function(data, x, y) {
return (x * size) + (x * spacing);
})
.attr('y', function(data, x, y) {
return (y * size) + (y * spacing);
})
.attr('width', size)
.attr('height', size);
它只渲染二維數組的第一行。
是否有一個特別的原因,你不想兩次使用'selectAll'? – Quinn
您的SVG結構應該密切反映您的JSON結構。如果你想改變SVG結構不具有g元素,那麼你需要改變你的JSON結構(可能是一個平面陣列)。 – dcryan22
@奎因不是真的,我是新來的d3,所以我只是想更好地瞭解API :) – chinabuffet