NetworkX节点属性绘图

29

我正在使用networkx进行可视化。我发现当我使用函数draw_networkx_edge_labels时,可以检索边缘的标签。

我想要打印节点上的属性(而不是标签)...尝试了几乎一切但仍然被卡住。如果每个节点有5个属性,是否有任何方法可以在每个节点上打印特定的属性?例如,如果车节点具有属性:大小、价格、公司...我想在每个节点上打印车的大小?

不知道是否可以在图形上输出这个。


如果您想使用pygraphviz进行绘图,请参考此链接:https://dev59.com/fm_Xa4cB1Zd3GeqP14E9#67442702,因为不建议使用nx进行绘图(请参阅networkx文档)。 - Charlie Parker
1个回答

43
你可以通过指定labels=关键字来实现。
import pylab
import networkx as nx
G=nx.Graph()
G.add_node('Golf',size='small')
G.add_node('Hummer',size='huge')
G.add_edge('Golf','Hummer')
labels = nx.get_node_attributes(G, 'size') 
nx.draw(G,labels=labels,node_size=1000)
pylab.show()

13
替换第7行的较简单的方法是:labels = nx.get_node_attributes(G, 'size'),该函数返回类似于第7行创建的字典。 - TrentP
3
如果我想在图中绘制所有节点的所有属性,应该怎么做? - Luk Aron
代码建议给我这个错误:networkx.exception.NetworkXError: random_state_index is incorrect,它给你什么? - Charlie Parker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接