支持@mdml答案的说明(这里所说的都是参考@mdml的答案)
1-使用 nx.grid_2d_graph 的节点键
给节点的键是隐式完成的,给每个节点一个描述行和列的键 (i,j)。访问 (0,0) -> G[(0,0)] 处的节点
2-用于绘图的标签
为绘图指定的标签应按以下方式进行,以遵守问题中的编号方案:
labels = dict( ((i, j), i + (N-1-j) * N ) for i, j in G.nodes() )
请注意它应该是 N 而不是 10,这样更笼统,因为如果您更改了 N,标签将不是您期望的标签。此外,这些标签仅用于绘图,因此与访问节点无关。
3-将键链接到标签
访问节点 -> G[(0,0)] 指的是绘制图中的节点 90(一般是左下角),G[(1,0)] 是右边的节点 (91),而 G[( 0,1)] 是标记为 (80) 的节点,因此请注意这个约定,因为它可能并不明显。
4-给节点 ID 与图中的节点 ID 相同
您可以使用标签字典向每个节点添加一个名为 id 的属性,该属性包含您在绘制图中看到的整数:
for (i,j) in labels:
G.node[(i,j)]['id'] = labels[(i,j)]
我创建了一个 N=2 的简单图形,并使用了第2 点和第 3点的线,并打印出如下 ID:
for i in xrange(N):
for j in xrange(N):
print 'Node ID at: (%d, %d) = %d' %(i,j,G.node[(i,j)]['id'])
plt.axis('off')
plt.show()
结果:
Node ID at: (0, 0) = 2
Node ID at: (0, 1) = 0
Node ID at: (1, 0) = 3
Node ID at: (1, 1) = 1