【问题标题】:Networkx: Draw Network from Distance Matrix in Pandas DataFrame fromNetworkx:从 Pandas DataFrame 中的距离矩阵绘制网络
【发布时间】:2017-10-12 14:28:20
【问题描述】:

我有一个余弦距离矩阵作为熊猫数据框。如果将其转换为 numpy 矩阵并执行以下操作,我可以将其可视化为网络:

DistMatrix = cosine1
G = G=nx.from_numpy_matrix(DistMatrix)
nx.draw(G , with_labels=True)
plt.show()

问题是我失去了节点的标签。然而,这些标签在 pandas 数据框中。作为距离矩阵,列标签当然与索引标签相同,并且矩阵的对角线具有为 0 的条目(它们完全相同)。

如何从我的 pandas 数据框中绘制一个网络并包含标签以正确标记节点?

 DistMatrix = pd.DataFrame( data = cosine , index = label_list , columns = label_list)

是否可以只在 numpy 矩阵版本中添加标签?

【问题讨论】:

    标签: python pandas dataframe networkx


    【解决方案1】:

    您可以使用函数relabel_nodes 手动添加标签,方法是添加带有编号到标签的映射的字典。

    G = nx.from_numpy_matrix(DistMatrix.values)
    
    labels = DistMatrix.columns.values
    G = nx.relabel_nodes(G, dict(zip(range(len(labels)), labels)))
    
    nx.draw(G, with_labels=True)
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多