我正在用Dash-Cytoscape绘制一个网络,使用breadthfirst
布局,如here所示.
我想控制元素在同一级别上的出现顺序.JS API有depthSort
参数来实现这一点,但我不知道如何在Python中传递前端可以接受的回调.
我试过的东西:
-
"depthSort": lambda a,b: a - b
个 -
"depthSort": "(a,b) => a - b"
个 "depthSort": "function (a,b) { return a - b}"
最小示例:
我想要得到这个:
1
3 2
但我得到的是:
1
2 3
from dash import Dash
import dash_cytoscape as cyto
app = Dash(__name__)
app.layout = cyto.Cytoscape(
elements=[
{"data": {"id": "1", "label": "1"}},
{"data": {"id": "2", "label": "2"}},
{"data": {"id": "3", "label": "3"}},
{"data": {"source": "1", "target": "2"}},
{"data": {"source": "1", "target": "3"}},
],
layout={
"name": "breadthfirst",
"roots": ["1"],
# "depthSort": ?
},
)
app.run_server(debug=True)