networkx可视化图
时间: 2025-07-01 22:39:14 浏览: 8
### 使用 NetworkX 可视化图数据结构
为了使用 `NetworkX` 库来可视化图数据结构,可以遵循以下方式创建和展示图形:
#### 创建并绘制简单无向图
定义一个空的无向图对象,并通过调用相应的方法添加节点与边。最后利用 Matplotlib 来显示图像。
```python
import networkx as nx
import matplotlib.pyplot as plt
g = nx.Graph()
g.add_edge('A', 'B')
g.add_edge('B', 'C')
g.add_edge('A', 'D')
g.add_edge('B', 'D')
plt.figure(figsize=(8, 6))
nx.draw(g, with_labels=True, node_color='skyblue', edge_cmap=plt.cm.Blues)
plt.title("Simple Undirected Graph Visualization")
plt.show()
```
这段代码展示了如何建立一个简单的无向图以及设置绘图参数以增强视觉效果[^1]。
对于更复杂的场景,比如带有权重或属性的边,则可以通过指定额外的关键字参数来进行定制化的表示。
#### 绘制带权有向图
当处理具有方向性和特定权重关系的数据集时,可以选择构建有向图(DiGraph),并通过自定义样式突出这些特性。
```python
dg = nx.DiGraph()
edges_with_weights = [('E', 'F', 0.5), ('F', 'G', 0.9), ('E', 'H', 1.2)]
dg.add_weighted_edges_from(edges_with_weights)
pos = nx.spring_layout(dg) # 计算布局位置
labels = nx.get_edge_attributes(dg, 'weight') # 获取边上的标签即权重值
plt.figure(figsize=(8, 6))
nx.draw_networkx(dg, pos, arrows=True, node_size=700, alpha=0.6, linewidths=2,
font_size=15, font_family="sans-serif", connectionstyle='arc3,rad=0.1')
nx.draw_networkx_edge_labels(dg, pos, edge_labels=labels)
plt.axis('off')
plt.title("Weighted Directed Graph Example")
plt.show()
```
此部分说明了怎样引入箭头指示方向、调整节点大小和其他美学选项来呈现更加丰富的图表信息[^2]。
阅读全文
相关推荐

















