Networkx节点大小

时间:2015-07-20 18:52:22

标签: 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)

如果查看节点,边缘,节点重量,打印输出如下:

   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

列表中的节点大小和描述的节点大小不一样,我无法弄清楚原因。

谢谢大家!

1 个答案:

答案 0 :(得分:3)

networkx在dict中存储节点。当它绘制它们时,它基本上按照python给出的顺序查看键。我们无法保证您的权重与sizes相同。

所以试试:

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