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)
我使用 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)