我很难理解sigma.js如何处理节点和边缘的大小。
我知道您在图表设置中设置了minNodeSize
和maxNodesSize
。然后根据节点的个体大小以及图形的缩放级别分配实际显示大小。正确的吗?
我想要实现的是一个节点在mouseOver上将其大小加倍,并在mouseOut上缩小回原始大小。这是我的代码:
var minNodeSize = 1;
var maxNodeSize = 5;
sigma.parsers.json('giantComponent.json', {
container: 'graph',
settings: {
minNodeSize: minNodeSize,
maxNodeSize: maxNodeSize
}
//Assign same size to all nodes
var s = sigma.instances()[0];
var nodes = s.graph.nodes();
nodes.forEach(function (n) {
n.size= maxNodeSize/2;
})
}
);
//Function to change a nodes size on mouseOVer
function interactiveNodes () {
var s = sigma.instances()[0];
var nodes = s.graph.nodes();
s.bind('overNode', function (d) {
d.data.node.size = maxNodeSize;
s.refresh();
})
s.bind('outNode', function (d) {
d.data.node.size = maxNodeSize/2;
s.refresh();
})
}
结果:当我将鼠标悬停在节点上时,该节点保持相同的大小,而所有其他节点缩小到其大小的一半。
有什么想法吗?
答案 0 :(得分:1)
我认为您要求使用autoRescale选项。 https://github.com/jacomyal/sigma.js/wiki/Settings#global-settings