我是d3的新手,对于那些使用D3的人来说,这似乎是一个非常愚蠢的问题。但是,我正在尝试实现此http://vizuly.io/product/weighted-tree/。 我正在尝试创建一个交互式图例,在单击图例时过滤树。 但是我无法弄清楚树数据结构,如何在图例中传递viz对象,如何使过滤工作。
我想要折叠除了我点击了其图例的节点之外的所有节点。
function onClickLegend(g,d){ // for filtering or collapsing that node and corresponding branches whose legend is clicked
switch(d)
{
case 0: viz.toggleNode(data.values[0]); break;
case 1: viz.toggleNode(data.values[1]); break;
case 2: viz.toggleNode(data.values[2]); break;
case 3: viz.toggleNode(data.values[3]); break;
case 4: viz.toggleNode(data.values[4]); break;
case 5: viz.toggleNode(data.values[5]); break;
case 6: viz.toggleNode(data.values[6]); break;
case 7: viz.toggleNode(data.values[7]); break;
case 8: viz.toggleNode(data.values[8]); break;
case 9: viz.toggleNode(data.values[9]); break;
case 10: viz.toggleNode(data.values[10]); break;
case 11: viz.toggleNode(data.values[11]); break;
case 12: viz.toggleNode(data.values[12]);break;
}
}