[英]vis.js change node color also affect edge color
我使用此功能從其ID更改了節點顏色,但是我發現從該節點開始的邊緣也更改了顏色
例
如果我將節點2更改為紅色
從:2,連接到:1,4,5的邊線8,7,6也變為紅色
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"});
}
我的理解是,這就是vis.js的工作方式:默認情況下,邊緣顏色是原始節點(邊界)的顏色(您當然可以更改它,就像對節點所做的一樣)。
有關此操作的詳細信息,請參閱以下選項的文檔: http : color.inherit
中的color.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'}});
或者您可以使用color更新邊緣:
edges.update({id:10,color:{color:'#ff383f'}});
我發現如果我在選項中設置邊緣顏色。 邊緣顏色不再改變。
在options.edges.color.inherit中禁用繼承屬性:
let options = {
edges: {
color : {
inherit: false
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.