使用字典向NetworkX图添加位置



我有一个名为G1的DiGraph对象,一个带有边的图网络。G1由一个节点列表组成,我想给它们存储在python字典中的坐标。

这是节点列表:节点列表

对于每个节点,我都用节点名作为键,用坐标元组作为值构建了一个python字典:

DICTIONARY WITH COORDINATES

我想为每个具有这些坐标的节点添加属性位置(pos)。

现在我试着用这个循环:

FOR循环添加坐标

但是结果只有最后一个节点看起来有坐标,看起来数据是用这个方法订阅的:

误差

结果应该是在xy空间上绘制的图形网络,并使用代码获得正确的坐标:绘制图表我得到以下错误:

KeyError: (78.44, 88.3)

我认为这里主要是语法错误。试试这个:

for node, pos in avg.items():
G1.nodes[node]['pos'] = pos

然后,在构建可视化时,预先像这样构建位置列表,并且在调用nx.draw()时仅使用pos=pos约定。

pos = {node: G.nodes[node]['pos'] for node in G.nodes()}

* * * *编辑:* * * *

有一个内置的方法可以做到这一点,更干净:

nx.set_node_attributes(G1, avg, 'pos')

然后,在绘图时,使用:

nx.draw(G1, pos=nx.get_nodes_attributes(G1, 'pos'))

相关内容

  • 没有找到相关文章

最新更新