我从这个Dendrogram + grouped horizontal bar chart开始工作,我希望它是交互式的,当单击节点时,我希望它像树一样折叠或展开。
为此,我首先将数据设置为全局变量:
let myData;
d3.csv("employee.csv", row, function(error, data) {
if (error) throw error;
myData = data;
移动所有代码以生成后,在更新功能中设置svg。
然后,我在节点上添加一个click事件,如下所示:
node.on("click", click);
[...]
function click(d) {
if (d.children != null) {
console.log('children = null');
d._children = d.children;
d.children = null;
} else {
console.log('children = _children');
d.children = d._children;
d._children = null;
}
removeCurrentGraph();
update(myData);
下一步是删除所有图形
svg.selectAll("path.link").remove();
svg.selectAll("g.node").remove();
并重做更新。
我的问题是,整个图表都是用所有节点绘制的,即使那些我将子级设置为null的节点也是如此。
我不确定我在做什么错吗?
谢谢!