我正在使用 JavaScript InfoVis Toolkit,尤其是SpaceTree可视化。
我需要展开所有树,然后显示从特定叶节点返回到根的路径。
我已经让树展开得很好,但它是一个叶节点的选择并突出显示返回根的路径,这给我带来了一些问题。
我正在使用该ST.select(node, onComplete)
函数来选择我感兴趣的叶节点,并且确实突出显示了返回根的路径(行和节点)。
为此,我实现了onBeforePlotNode
和onBeforePlotLine
ST.Controller
方法,以允许我将节点突出显示回根及其情节线:
onBeforePlotNode: function(node){
//add some color to the nodes in the path between the
//root node and the selected node.
if (node.selected) {
node.data.$color = "#dddddd";
} else {
delete node.data.$color;
}
},
onBeforePlotLine: function(adj){
if (adj.nodeFrom.selected && adj.nodeTo.selected) {
adj.data.$color = "#33CC33";
adj.data.$lineWidth = 5;
} else {
delete adj.data.$color;
delete adj.data.$lineWidth;
}
}
问题是,当我调用ST.select()
突出显示叶节点时,该级别以下的所有子节点都被折叠/隐藏。
为了看到这一点,我上传了几个例子:
如果您的浏览器窗口有点小,您可能需要向下滚动。
所以我的问题是,如何在 JavaScript InfoVis 中将节点从叶节点显示回根节点而不折叠级别 3 的子节点(级别 1 是根节点)?
如果有办法找到我的叶子节点并将树走回根部(在途中设置样式),那么我会很高兴这样做