gpt4 book ai didi

layout - d3.js 中的自定义布局?

转载 作者:行者123 更新时间:2023-12-04 14:33:19 26 4
gpt4 key购买 nike

如何在 d3.js 中创建自定义布局?

任何链接或示例都会有所帮助

我不想要 d3 使用的标准布局,想要编写我自己的 .

最佳答案

布局函数可以是一个简单的函数,它将坐标(以及绘图的任何附加数据,如 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 + ')'});

这是基本的裸骨方法。如果你想遵循 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);
...

关于layout - d3.js 中的自定义布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28495664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com