从数据框架使用Dash Cytoscape



假设我有以下表格:

df

source    target     Weight
A            B        10
A            C        8
C            F        8
B            F        6
F            D        6
B            E        4

我能够使用networkx库来绘制它。我也想尝试使用Dash Cytoscope组件。

我试过以下方法。但还没有成功。

app.layout = html.Div([
html.Div([

cyto.Cytoscape(
id='org-chart',
autoungrabify=True,
minZoom=0.2,
maxZoom=1,
layout={'name': 'breadthfirst'},
style={'width': '100%', 'height': '500px'},
elements=
[
# Nodes elements
{'data': {'id': x, 'label': x}} for x in df.name
]
+
[
# Edge elements
{'data': {'source': df['source'], 'target': df['target']}},

]
)
], className='six columns'),
html.Div([
html.Div(id='empty-div', children='')
],className='one column'),
], className='row')

感谢您的帮助。

问题是您试图使用整个数据框架列来定义边缘,而不是迭代它(就像您对节点所做的那样)。你试过下面的代码吗?

edges = [{'data': {'source': x, 'target': y}} for x,y in zip(df.source,df.target)]

最新更新