使用任意x和y名称

时间:2016-02-12 09:52:34

标签: javascript d3.js quadtree

我想使用没有标记为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"但我有理由不想这样做。)

1 个答案:

答案 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');