Dash Cytoscape 与大型数据集斗争

问题描述

我正在尝试使用 Cytoscape 实现的大小为 ~500x500 的邻接矩阵在 Dash 上可视化网络。我正在将矩阵转换为库使用的专有输入列表样式。我在邻接矩阵的字典表示中这样做的代码如下:

def makeElementsList(inlist = networkvis.makeNetworkList()):
    elsList = []
    for i in inlist:
        elsList.append({'data' : {'id' : str(i),'label' : str(i)}}) 
    for i,j in list(networkvis.makeAdjMatrix(inlist).items()):
        for k,l in list(j.items()):
            if l != 0:
                elsList.append({'data' : {'source' : str(i),'target' : str(k)}})
    return elsList

app = dash.Dash(__name__)
# instantiate Dash object
app.layout = html.Div([
    cyto.Cytoscape(
        id='cytoscape_tweet_network',layout={'name': 'circle'},style={'width': '100%','height': '1000px'},# elements=networkvis.makeNetworkList()[:10]
        elements= makeElementsList()
    )
])

当我将矩阵的大小减小到 10x10 时,我能够启动并运行我的网页,但是当我将大小调大时,页面需要很长时间才能加载,最终看起来像一个巨大的 blob没有什么。它也根本不是交互式的。不确定这是否是我选择的某些参数的问题,或者数据集是否太大以至于库无法处理,但如果 Cytoscape 无法处理 500 个节点,我会感到非常惊讶。值得补充的是,我对这个问题的最初反应之一是尝试将页面托管在比我的机器更强大的服务器上。没有结果,所以我认为这不是带宽问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)