networkx 是一个强大的 Python 库,用于创建、操作和研究图(Graphs)和网络结构。

1. 安装 networkx

要在 Python 3 环境中使用 networkx,可以使用 pip 进行安装:

pip install networkx

2. 创建简单图

import networkx as nx

# 创建一个无向图
G = nx.Graph()

# 添加节点
G.add_node(1)
G.add_nodes_from([2, 3, 4])

# 添加边
G.add_edge(1, 2)
G.add_edges_from([(2, 3), (3, 4)])

# 查看图的信息
print("节点:", G.nodes())
print("边:", G.edges())

3. 创建带权图

G = nx.Graph()
G.add_edge(1, 2, weight=4.5)
G.add_edge(2, 3, weight=3.2)

# 访问边的属性
for u, v, weight in G.edges(data='weight'):
    print(f"边 ({u}, {v}) 权重: {weight}")

4. 计算图的基本性质

print("节点数:", G.number_of_nodes())
print("边数:", G.number_of_edges())
print("邻接节点:", list(G.neighbors(2)))

5. 画图

import matplotlib.pyplot as plt

# 简单绘制图
nx.draw(G, with_labels=True, node_color='lightblue', edge_color='gray')
plt.show()

6. 有向图

D = nx.DiGraph()
D.add_edge('A', 'B')
D.add_edge('B', 'C')
print("有向图边:", D.edges())

7. 查找最短路径