Cytoscape.js - 创建大小的圆形节点

时间:2016-06-19 03:06:26

标签: cytoscape.js

在cytoscape中,我想创建圆形的节点,其直径取决于节点标签(标签在节点中居中)。我设置了以下内容:

style: {
    'shape': 'ellipse',
    'width': 'label'
}

如何获得高度取决于宽度值?设置'身高':'标签'将高度设置为标签的高度。

2 个答案:

答案 0 :(得分:1)

根据标签长度和字体,您可以在将节点附加到图表的javascript部分中设置宽度和高度,并将剩余的样式保留为引擎的初始化。

例如:

cy.add({
        group: 'nodes',
        style: {
            height: (10*label.lenght),
            width: (10*label.lenght),
        }
    })

答案 1 :(得分:1)

如果你可以使用固定宽度的字体,那么@ BeerBaron的答案是最好的。

或者,使用OP中的样式表:

style: {
  'shape': 'ellipse',
  'width': 'label',
  'height': 'data(height)'
}

将节点高度更新为初始化后的步骤,例如

cy.nodes().forEach(function( n ){ n.data('height', n.width()); });

您可能应该为每个节点预设data.height为init的某个默认值,以便于调试(例如,稍后添加新节点时)。