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