Networkx - 每个节点都是一个对象如何根据对象属性进行标记和大小

Networkx - each node is an object how do I label and size according to the objects attribute

我使用 Python 3.6 创建了一个 NetworkX 图,其中每个节点都是一个具有属性的对象:

{'id': 1, 'wealth': 300}

当我绘制图形时,我希望节点标签为 'id' 并且大小基于 'wealth',但我不知道如何获取访问命令这些属性。

现在我有:

nx.draw_networkx(G, with_labels=False, label=[node.id for node in G])

然而,这不提供任何标签,我尝试了几种变体,(即 with_labels=True)但我唯一能得到的标签是对象。

你可以利用get_node_attributes and draw_networkx

labels = nx.get_node_attributes(G, 'id')
node_size = list(nx.get_node_attributes(G, 'wealth').values())
nx.draw_networkx(G, labels=labels, node_size=node_size)