布局函数可以是一个简单的函数,它为您的数据分配坐标(以及绘图的任何其他数据,如startAngle,endAngle,...),然后返回一个节点列表的数组.一个简单的例子:
function myLayout(data) {
var nodes = []; // or reuse data directly depending on layout
// for each element of data, assign a x,y coordinate)
return nodes;
}
var nodes = myLayout(myData);
var g = d3.selectAll('g.node').data(nodes);
g.enter().append('g').attr('class', 'node');
g.attr('transform', function(d) {
return 'translate(' + d.x + ',' + d.y + ')'});
Run Code Online (Sandbox Code Playgroud)
这是基本的裸骨方法.如果你想遵循d3自己的代码结构,布局将返回一个与上面相同的函数,但是有其他功能来配置它:
function myLayout() {
var space = 1;
function compute(data) {
// same as before
}
compute.space = function(s) {
if (!arguments.length) return space;
space = s;
return this; // chaining
}
return compute;
}
var layout = myLayout().space(10);
var nodes = layout(myData);
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2089 次 |
| 最近记录: |