我使用此函数更改节点颜色,但是我发现以该节点开头的边缘也会改变颜色
示例
如果我将节点2更改为红色
边缘8,7,6连接从:2,到:1,4,5也变为红色
function draw() {
nodes.add([
{id: 1, label: 'Node 1'},
{id: 2, label: 'Node 2'},
{id: 3, label: 'Node 3'},
{id: 4, label: 'Node 4'},
{id: 5, label: 'Node 5'}
]);
edges.add([
{id:9, from: 3, to: 1},
{id:8, from: 2, to: 1},
{id:7, from: 2, to: 4},
{id:6, from: 2, to: 5}
]);
这是我的代码:
network.on( 'click', function(params) {
idnode = params.nodes;
idedge = params.edges;
});
function red() {
idnode2 = idnode;
nodes.update({id: idnode2, color: "red"});
}
答案 0 :(得分:3)
我的理解是这正是vis.js的工作方式:默认情况下,边缘颜色是原始节点(边界)的颜色(当然,您可以更改它,就像您对节点所做的那样)。
有关详细信息,请参阅http://visjs.org/docs/network/edges.html
color.inherit
答案 1 :(得分:3)
我们需要在全局选项中禁用inherit属性,例如:
var options = {
nodes: {
shape: 'dot',
scaling: {
customScalingFunction: function (min,max,total,value) {
return value/total;
},
min:20,
max:100
}
}
,
edges:{
scaling: {
customScalingFunction: function (min,max,total,value) {
return value/total;
},
min:1,
max:200
},
color: {
//color:'#848484',
highlight:'#848484',
hover: '#d3d2cd',
inherit: false,
opacity:1.0
}
}
};
然后在添加边缘时,我们应该将颜色包括为:
edges.add({from: 1, to: 2, value:10,color:{color:'#ff383f'}});
或者您可以使用颜色更新边缘:
edges.update({id:10,color:{color:'#ff383f'}});
答案 2 :(得分:0)
我发现如果我在选项中设置边缘颜色。边缘颜色不再发生变化。
答案 3 :(得分:0)
在options.edges.color.inherit中禁用继承属性:
let options = {
edges: {
color : {
inherit: false
}
}
}