NetworkX节点属性绘制

SDR*_*SDR 16 attributes draw networkx

我使用networkx进行可视化.我看到当我使用draw_networkx_edge_labels函数时,我可以检索边缘的标签.

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

不知道是否可以在图表上输出.

Ari*_*ric 24

你可以通过指定labels = keyword来实现它 - 它有点笨拙.例如:

In [1]: import pylab

In [2]: import networkx as nx

In [3]: G=nx.Graph()

In [4]: G.add_node('Golf',size='small')

In [5]: G.add_node('Hummer',size='huge')

In [6]: G.add_edge('Golf','Hummer')

In [7]: labels=dict((n,d['size']) for n,d in G.nodes(data=True))

In [8]: labels
Out[8]: {'Golf': 'small', 'Hummer': 'huge'}

In [9]: nx.draw(G,labels=labels,node_size=1000)

In [10]: pylab.show()
Run Code Online (Sandbox Code Playgroud)

  • 第7行更容易替换:`labels = nx.get_node_attributes(G,'size')`该函数返回类似于第7行创建的字典. (10认同)
  • 如果我想绘制图中所有节点的所有属性怎么办? (2认同)