Javascript 如何定义D3中的父子关系?
在下面的json文件中,Javascript 如何定义D3中的父子关系?,javascript,json,d3.js,Javascript,Json,D3.js,在下面的json文件中,id是id号,lv是级别,pid是该记录的父id号。如何在D3.js中构建父子节点关系以绘制分区 我已经通过d3.json和data.map函数将json文件转换为数组 [ { "id": 1, "nam": "Ph", "lv": 1, "pid": 0 }, { "id":2, "nam":"Pa", "lv1":2, "pid":1
id
是id号,lv
是级别,pid
是该记录的父id号。如何在D3.js中构建父子节点关系以绘制分区
我已经通过d3.json和data.map函数将json文件转换为数组
[
{
"id": 1,
"nam": "Ph",
"lv": 1,
"pid": 0
},
{
"id":2,
"nam":"Pa",
"lv1":2,
"pid":1
},
...
]
要定义父子关系,您需要 因此,考虑到您的数据结构,分层功能应该是这样的:
var stratify = d3.stratify()
.id(function(d) { return d.id; })
.parentId(function(d) { return d.pid; });
该函数非常容易使用:在id
中设置每个节点的id,在parentId
中设置每个节点的父id(在本例中,分别是id
和pid
)
查看此演示:
var data=[{“id”:1,“nam”:“Ph”,“lv”:1,“pid”:“},
{“id”:2,“nam”:“Pa”,“lv1”:2,“pid”:1},
{“id”:3,“nam”:“Foo”,“lv1”:2,“pid”:1},
{“id”:4,“nam”:“Bar”,“lv1”:3,“pid”:2}];
var stratify=d3.stratify()
.id(函数(d){返回d.id;})
.parentId(函数(d){return d.pid;});
变量根=分层(数据);
console.log(root)代码>
要定义父子关系,您需要
因此,考虑到您的数据结构,分层功能应该是这样的:
var stratify = d3.stratify()
.id(function(d) { return d.id; })
.parentId(function(d) { return d.pid; });
该函数非常容易使用:在id
中设置每个节点的id,在parentId
中设置每个节点的父id(在本例中,分别是id
和pid
)
查看此演示:
var data=[{“id”:1,“nam”:“Ph”,“lv”:1,“pid”:“},
{“id”:2,“nam”:“Pa”,“lv1”:2,“pid”:1},
{“id”:3,“nam”:“Foo”,“lv1”:2,“pid”:1},
{“id”:4,“nam”:“Bar”,“lv1”:3,“pid”:2}];
var stratify=d3.stratify()
.id(函数(d){返回d.id;})
.parentId(函数(d){return d.pid;});
变量根=分层(数据);
console.log(root)代码>