Javascript D3折叠群集布局
我正在处理大型数据集,并使用D3(径向)聚类树状图来显示数据 我试图在d3集群类上实现一种可折叠性,就像在树类中看到的一样 然而,我需要图形有一个恒定的大小。更具体地说,半径不能改变,因此最小图将是两个节点(中间节点和一个叶节点中的一个)。然后单击内部节点将使用叶节点填充图形的边缘,并更新所有现有的内部节点和链接 我一直在尝试破解树类中的d3更新函数,但我没有运气。有没有人能够解决(或绕过)这个问题Javascript D3折叠群集布局,javascript,d3.js,Javascript,D3.js,我正在处理大型数据集,并使用D3(径向)聚类树状图来显示数据 我试图在d3集群类上实现一种可折叠性,就像在树类中看到的一样 然而,我需要图形有一个恒定的大小。更具体地说,半径不能改变,因此最小图将是两个节点(中间节点和一个叶节点中的一个)。然后单击内部节点将使用叶节点填充图形的边缘,并更新所有现有的内部节点和链接 我一直在尝试破解树类中的d3更新函数,但我没有运气。有没有人能够解决(或绕过)这个问题 我没有连接到集群布局,但我确实需要具有恒定的大小(这是我发现的唯一支持此功能的D3布局) 我
我没有连接到集群布局,但我确实需要具有恒定的大小(这是我发现的唯一支持此功能的D3布局) 我混合了这两种布局。这将首先折叠所有节点:
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
data.children.forEach(collapse);
update(data);//this will draw all the nodes and links
单击功能:
// Toggle children on click.
function click(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update(data);
}
完整代码。您只需单击更改数据,然后重新计算布局即可。