微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从数据框中使用 Dash Cytoscape

如何解决从数据框中使用 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)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。