首页 > 解决方案 > 基于度数更改节点大小的AttributeError

问题描述

我的图表似乎没有正确显示边缘属性(它们应该为边缘分配权重)。此外,当我尝试将节点的大小与其程度相关联时,我收到以下错误。

数据示例如下:

Node1   Node2    Edge_Weight    Number
A         B         0.2           1
A         D         0.4           1
A         N         0.1           1
B         C         0.5           1
B         A         0.3           1 
S         X         0.2           1
B         N         0.1           2 
S         C         0.5           2
N         A         0.3           2
S         X         0.2           2

到目前为止,我所做的是定义一个遍历两个文件的函数,如下所示:

def loop_func(df):
    node_list=[]

    G = nx.from_pandas_edgelist(file, source='Node1', target='Node2', edge_attr='Edge_Weight') 
    d = nx.degree(G)
    
    for x in (df.Number.unique()):
        df_num = df[df['Number'] == x]
        graphs = [nx.from_pandas_edgelist(df_num, source='Node1', target='Node2', edge_attr='Edge_Weight') for _ in df.Number.unique()]

        nx.draw_networkx(graphs[x-1])
        plt.show()

    

此代码生成错误: AttributeError: 'DegreeView' object has no attribute 'keys' 。确定为节点分配度数有问题。

标签: pythonnetworkx

解决方案


推荐阅读