使用任意 x 和 y 名称初始化 d3 四叉树
initialise d3 quadtree with arbitrary x and y names
我想使用没有标记为 x 和 y 的列但有一些其他标签的数据来设置 d3 四叉树。阅读四叉树文档我认为我可以这样做:
var data = [{"a":6,"b":99.0},{"a":12,"b":227.0},{"a":2,"b":43.0},{"a":23,"b":32.0}];
var xname = "a";
var yname = "b";
var quadtree = d3.geom.quadtree(data)
.x(function(d) {return d[xname]; })
.y(function(d) {return d[yname]; });
但是当我 运行 这段代码时,我得到一个错误:
TypeError: d3.geom.quadtree(data).x is not a function. (In 'd3.geom.quadtree(data).x(function(d) {return d[xname]; })', 'd3.geom.quadtree(data).x' is undefined)
如何设置四叉树使用不同的 x 和 y 标签? (显然,我可以更改数据以使用 "x" 和 "y",但出于某些原因我不想这样做。)
不要创建传递数据的四叉树
例如:
var data = [{"a":6,"b":99.0},{"a":12,"b":227.0},{"a":2,"b":43.0},{"a":23,"b":32.0}];
var xname = "a";
var yname = "b";
var quadtree = d3.geom.quadtree(/* nothing here */)
.x(function(d) {return d[xname]; })
.y(function(d) {return d[yname]; });
数据绑定必须稍后附加
d3.selectAll('circle').data(quadtree(data))
.append('circle');
我想使用没有标记为 x 和 y 的列但有一些其他标签的数据来设置 d3 四叉树。阅读四叉树文档我认为我可以这样做:
var data = [{"a":6,"b":99.0},{"a":12,"b":227.0},{"a":2,"b":43.0},{"a":23,"b":32.0}];
var xname = "a";
var yname = "b";
var quadtree = d3.geom.quadtree(data)
.x(function(d) {return d[xname]; })
.y(function(d) {return d[yname]; });
但是当我 运行 这段代码时,我得到一个错误:
TypeError: d3.geom.quadtree(data).x is not a function. (In 'd3.geom.quadtree(data).x(function(d) {return d[xname]; })', 'd3.geom.quadtree(data).x' is undefined)
如何设置四叉树使用不同的 x 和 y 标签? (显然,我可以更改数据以使用 "x" 和 "y",但出于某些原因我不想这样做。)
不要创建传递数据的四叉树
例如:
var data = [{"a":6,"b":99.0},{"a":12,"b":227.0},{"a":2,"b":43.0},{"a":23,"b":32.0}];
var xname = "a";
var yname = "b";
var quadtree = d3.geom.quadtree(/* nothing here */)
.x(function(d) {return d[xname]; })
.y(function(d) {return d[yname]; });
数据绑定必须稍后附加
d3.selectAll('circle').data(quadtree(data))
.append('circle');