我有一个具有特定属性的节点图,我想用 Python 中的 networkx 绘制该图,其中有几个属性作为节点外节点的标签。
有人可以帮助我如何编写代码来实现这一目标吗?
我的代码中有一个循环生成“interface_?” 来自防火墙列表 (fwList) 的每个输入的属性
for y in fwList:
g.add_node(n, type='Firewall')
print 'Firewall ' + str(n) + ' :'
for x in fwList[n]:
g.node[n]['interface_'+str(i)] = x
print 'Interface '+str(i)+' = '+g.node[n]['interface_'+str(i)]
i+=1
i=1
n+=1
然后,稍后我绘制节点和边缘,例如:
pos=nx.spring_layout(g)
nx.draw_networkx_edges(g, pos)
nx.draw_networkx_nodes(g,pos,nodelist=[1,2,3],node_shape='d',node_color='red')
并将其扩展到一些具有其他形状和颜色的新节点。
为了标记单个属性,我尝试了下面的代码,但它没有用
labels=dict((n,d['interface_1']) for n,d in g.nodes(data=True))
对于将文本从节点中取出,我不知道......