在 Dash Cytypscape 中自定义单个节点大小

Customize individual node sizes in Dash Cytypscape

我希望使用 Dash Cytoscape 根据给定值调整单个节点大小。但是,我只设法理解使用 'selector' : 'node' 来调整所有节点的大小。我无法弄清楚如何为单个样本提供特定值(或至少宽度和高度)。有没有办法手动为单个样本提供节点大小值?我目前所有节点的代码如下:

{       
        'selector': 'node',
        'style': {
                'content': 'data(label)',
                'width': '30%',
                'height': '30%'
        }
}

提前致谢。

是的,您可以为 cyto.Cytoscapeelements 参数中列出的任何节点设置字典键“classes”*的[n 唯一] ID 值] 对象。

例如:

cyto.Cytoscape(
    id="network-output",
    elements=[
        {
            "data": {"id": "A", "label": "A"},
            "position": {"x": 75, "y": 75},
            "classes": "A",  # ← *This node now can be referenced ".A"  
        },
        {
            "data": {"id": "B", "label": "B"},
            "position": {"x": 200, "y": 200},
            "classes": "B",
        },
        {"data": {"source": "A", "target": "B"}},
    ],
    layout=my_layout,
    style=my_style,
    stylesheet=[
        {"selector": "node", "style": {"width": "50px", "height": "50px"}}
    ],
)
     

然后在stylesheet参数中:

stylesheet = [
    {
        "selector": f".{value}",
        "style": {
            "background-color": "#FD8008",
            "background-opacity": "0.8",
            "border-color": "#00C1FF",
            "border-width": "2",
            "width": "55px",
            "height": "55px",
            "label": "data(label)",
        },
    }
]

其中变量 value 可以是“A”或“B”,或者您根据 类 键分配给元素中任何节点的任何其他名称。这样,每个节点的样式都可以根据需要进行唯一处理。包括通过回调,其中输出是任何 Cytoscape 的样式表。