在cytoscape中,我想创建圆形的节点,其直径取决于节点标签(标签在节点中居中)。我设置了以下内容:
style: {
'shape': 'ellipse',
'width': 'label'
}
如何获得高度取决于宽度值?设置'身高':'标签'将高度设置为标签的高度。
答案 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的某个默认值,以便于调试(例如,稍后添加新节点时)。