Cytoscape.js&cose-bilkent:防止节点和边缘重叠的最佳参数

问题描述 投票:0回答:1

我需要使用Cytoscape.js绘制相对较小(最多20个节点)的网络图。大多数情况下,图表看起来不错,但有时会出现问题。有时节点的位置太近或存在其他问题。下面举几个例子:

example 1

example 2

通常,某些边缘也会重叠,即使对节点进行布局并不难,从而不会发生重叠。

我一直在试验参数,但是由于变量太多,因此很难找到最佳组合。

我正在使用ATM的参数:

cy.layout({
  name: "cose-bilkent",
  animate: false,
  idealEdgeLength: 30,
  quality: "proof",
  randomize: false,
  nodeDimensionsIncludeLabels: true,
  nodeRepulsion: 7000,
  edgeElasticity: 0.45,
  nestingFactor: 0.1,
  numIter: 30000,
  gravity: 0.25,
  tile: true
}).run();

我应该调整什么?

编辑:

Stephan的几个示例图像(请参阅注释):

demo 1demo 2

cytoscape.js
1个回答
0
投票

同位元音和fcose都没有防止边缘重叠的机制。实际上,在力导向布局算法中很难实现。另一方面,这两种算法试图尽可能地防止节点重叠,但是这种情况很少发生,尤其是在图形密集的情况下。

减少重叠机会的一种方法是在两种算法中都增加IdealEdgeLength参数,这将使节点不再分离。但我建议您使用fcose算法,如果您的图是平面的(或接近平面的),因为fcose通常在提供平面图的平面嵌入方面做得更好。

© www.soinside.com 2019 - 2024. All rights reserved.