Networkx 图 python

问题描述

import networkx as nx
import matplotlib.pyplot as plt 

G = nx.DiGraph()
G.add_nodes_from([0,1,2,3,4])

G.add_edge(0,4,weight =2.0)
G.add_edge(0,weight =3.0)
G.add_edge(0,weight =5.0)
G.add_edge(4,weight =4.0)
G.add_edge(4,weight =10.0)
G.add_edge(4,weight =6.0)
G.add_edge(2,weight =2.0)
G.add_edge(2,weight =1.0)
G.add_edge(1,weight =2.0)
G.add_edge(1,weight =6.0)

nx.draw(G,with_labels=True,font_weight='bold')
plt.show()

我需要设置每个节点的坐标。还有

G.node[0]['pos'] = (0,0)

不工作,我什至不知道为什么。如何设置每个节点有什么帮助? expected output

我必须像这样设置每个节点的坐标,但它会创建随机位置。

这是我的错误

AttributeError: 'DiGraph' object has no attribute 'node'

解决方法

图没有属性 node(它在 networkx 2.0 中已过时)。属性的名称是 nodes:

G.nodes[0]['pos'] = (0,0)