您好,我正在嘗試構建一個學校項目的網絡爬蟲可視化工具。我決定使用Cytoscape.js,它的使用非常好。我遇到的問題是某些佈局(圓形,寬度第一,同心)的邊緣長度似乎太大,圖形看起來很奇怪。Cytoscape.js佈局邊緣長度
當我第一次啓動該應用程序,我手工製作和負載的曲線(這是一個樹)有100個節點,並且看起來圓周佈置好:
但是之後我進行網頁抓取新圖表(這一個有44個節點)不適合圓形視圖:
有沒有辦法讓這個工作,以便邊緣不長,節點看起來更大?
編輯:
下面是我使用改變佈局的代碼:
changeLayout = function(layoutName, title, root){
var numOfNodes = cy.filter('node').length;
//extent changes when I repeatedly change the layout to circle, (don't understand this behavior)
var extent = cy.extent();
var rect = document.getElementById("cy-container").getBoundingClientRect();
var x1 = rect.left;
var x2 = rect.right;
var y1 = rect.top;
var y2 = rect.bottom;
var height = (y2 - y1);
var width = (x2 - x1);
var fact = (height < width) ? (height/numOfNodes) : (width/numOfNodes);
fact *= 5;
var myRadius = height < width ? (height-fact) : (width-fact);
switch(layoutName){
case 'circle':
myLayout = cy.makeLayout(
{ name: layoutName,
radius: myRadius,
boundingBox: {x1: x1, x2: x2, y1: y1, y2: y2},
fit: true,
avoidOverlap: false
});
break;
case 'concentric':
myLayout = cy.makeLayout(
{ name: layoutName,
height: height,
width: width,
fit: false,
avoidOverlap: true
});
break;
case 'breadthfirst':
myLayout = cy.makeLayout(
{ name: layoutName,
boundingBox: {x1: x1, x2: x2, y1: y1, y2: y2},
fit: true,
roots: root,
avoidOverlap: false
});
break;
default :
myLayout = cy.makeLayout(
{
name: layoutName
});
}
myLayout.run();
$('#graphTitle').text(title + " Layout");
};
這可能是各種各樣的事情。它可能與佈局功能相關聯。你可以發佈你所有的cytoscape代碼,以便我們更好地理解這個問題嗎? –