Dash Cytoscape与庞大的数据集抗争

2024-06-29 00:02:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用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时,我可以启动并运行我的网页,但当我将矩阵的大小恢复到10x10时,页面的加载需要花费很长时间,最终看起来就像一个巨大的空白点。它也不是交互式的。我不确定我选择的一些参数是否有问题,或者数据集太大,库无法处理,但如果Cytoscape无法处理500个节点,我会非常惊讶。值得补充的是,我对这个问题的最初反应之一是尝试将页面托管在比我的机器功能更强的服务器上。没有任何结果,所以我认为这不是带宽问题


Tags: inidfordata字典矩阵dashappend