我想使用没有标记为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"但我有理由不想这样做。)
答案 0 :(得分:0)
不要创建传递数据的四叉树
例如:
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');