Networkx 节点大小

Jen*_*nks 3 python networkx

我正在创建一个 networkX 图,其节点大小与节点相关。创建图形时,节点大小与传递给图形的大小列表不正确对应。任何人都可以帮忙吗?这是我正在使用的代码:

import networkx as nx

G = nx.Graph()
nodelist = []
edgelist = []
sizes = []
for i in Results[0]:
    if i > 0.10 and i != 1:
        Normnodesize = (i/Maxcs)*800
        Findnode = np.where(Results[0]==i)
        nodelist.append(str(Findnode[0][0]))
        edgelist.append((0,str(Findnode[0][0])))
        sizes.append(int(Normnodesize))

G.add_nodes_from(nodelist)
G.add_edges_from(edgelist)

pos = nx.fruchterman_reingold_layout(G)

nx.draw_networkx(G,pos,node_size=sizes)
Run Code Online (Sandbox Code Playgroud)

如果您查看节点、边、节点权重,则打印输出如下所示:

   16 (0, '16') 608
   38 (0, '38') 732
   55 (0, '55') 549
   63 (0, '63') 800
   66 (0, '66') 559
  106 (0, '106') 693
  117 (0, '117') 476
  124 (0, '124') 672
  130 (0, '130') 482
  143 (0, '143') 518
Run Code Online (Sandbox Code Playgroud)

列表中的节点大小和描述的节点大小不一样,我不知道为什么。

谢谢大家!

Joe*_*oel 5

networkx 将节点存储在字典中。当它绘制它们时,它基本上按照 python 给出的顺序查看键。不能保证这与您将它们的权重放入sizes.

所以尝试:

nx.draw_networkx(G,pos,nodelist = nodelist, node_size=sizes)