gpt4 book ai didi

javascript - jsnetworkx 改变节点颜色,访问邻居

转载 作者:行者123 更新时间:2023-11-30 13:04:54 25 4
gpt4 key购买 nike

我用jsNetworkx画了一个图这是 Networkx 的 JavaScript 版本.此端口还不完全具有 Networkx 的所有功能。

我的工作:http://jsfiddle.net/mrcactu5/VGpRJ/4/

我希望能够在 mouseover 上突出显示一个节点及其邻居,并将它们的颜色更改为 #FEFEFE

最佳答案

我计划在未来更容易地向可视化添加事件处理程序,但现在,您必须使用 D3 自己实现这些东西。

基本思想如下:根据节点名称为每个 SVG 节点元素分配一个唯一 ID。然后,在鼠标悬停(与 D3 绑定(bind))时,获取节点的所有邻居并使用名称找到相应的 SVG 元素并更改它们的样式。

例子:

jsnx.draw(G3, {
// ...
node_attr: {
r: 8,
title: function(d) { return d.label;},
id: function(d) {
return 'node-' + d.node; // assign unique ID
}
}
// ...
}, true);

// helper method to find and style SVG node elements
function highlight_nodes(nodes, on) {
nodes.forEach(function(n) {
d3.select('#node-' + n).style('fill', function(d) {
return on ? '#EEE' : d.data.color;
});
});
}

// bind event handlers
d3.selectAll('.node').on('mouseover', function(d) {
highlight_nodes(d.G.neighbors(d.node).concat(d.node), true);
});

d3.selectAll('.node').on('mouseout', function(d) {
highlight_nodes(d.G.neighbors(d.node).concat(d.node), false);
});

DEMO

关于javascript - jsnetworkx 改变节点颜色,访问邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com