NetworkX很强大,但我试图绘制一个默认显示节点标签的图表,我很惊讶这个看起来很简单的任务对于Networkx的新手来说是多么乏味.有一个示例显示如何向绘图添加标签.
https://networkx.github.io/documentation/latest/examples/drawing/labels_and_colors.html
这个例子的问题是,当我想要做的只是在绘制图形时显示与节点名称相同的标签时,它使用了太多的步骤和方法.
# Add nodes and edges
G.add_node("Node1")
G.add_node("Node2")
G.add_edge("Node1", "Node2")
nx.draw(G) # Doesn't draw labels. How to make it show labels Node1, Node2 along?
Run Code Online (Sandbox Code Playgroud)
有没有办法nx.draw(G)在图中内联显示默认标签(本例中为Node1,Node2)?
Joe*_*oel 70
TL/DR:只需添加with_labels=True到nx.draw通话.
因此,该页面上额外复杂性的主要原因是它展示了如何设置许多不同的东西作为标签以及为不同的节点提供不同的颜色,并提供对节点位置的仔细控制.看起来您只想要在创建节点时给出的名称,并且您对默认颜色和默认位置感到满意
import networkx as nx
import pylab as plt
G=nx.Graph()
# Add nodes and edges
G.add_edge("Node1", "Node2")
nx.draw(G, with_labels = True)
plt.savefig('labels.png')
Run Code Online (Sandbox Code Playgroud)
如果你想做一些事情,以便节点标签不同,你可以发送一个dict作为参数.所以,例如,
labeldict = {}
labeldict["Node1"] = "shopkeeper"
labeldict["Node2"] = "angry man with parrot"
nx.draw(G, labels=labeldict, with_labels = True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32999 次 |
| 最近记录: |