You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NetworkX迭代在图的指定位置添加节点与边?

NetworkX 迭代添加节点与边示例

核心逻辑

  • 初始化图对象后,在循环中持续复用同一个图实例,每次迭代基于当前图的状态添加新节点和边
  • 用字典维护节点位置,方便追踪和可视化

示例代码

import networkx as nx
import matplotlib.pyplot as plt

# 初始化空图和位置存储字典
G = nx.Graph()
node_positions = {}

# 添加初始节点(ID为0,位置(0,0))
start_node = 0
G.add_node(start_node)
node_positions[start_node] = (0, 0)

# 定义待添加的节点数据:(节点ID, 坐标)
new_nodes = [(1, (1, 0)), (2, (2, 0))]

# 迭代执行添加操作
for node_id, coord in new_nodes:
    # 添加新节点并记录位置
    G.add_node(node_id)
    node_positions[node_id] = coord
    # 与前一个节点建立连接(前节点ID = 当前节点ID -1)
    G.add_edge(node_id - 1, node_id)
    # 打印当前边列表,验证迭代过程
    print(f"当前边集合: {list(G.edges())}")

# 可选:可视化生成的图
nx.draw(G, node_positions, with_labels=True, node_size=600, node_color='#87CEEB')
plt.title("迭代生成的线性节点图")
plt.show()

代码说明

  • 图对象G在循环外初始化,循环内所有操作都直接修改这个实例,确保每次迭代都基于上一次的结果
  • 每次添加新节点时,直接与ID减1的前节点连边,保证线性连接的结构
  • 运行后会依次输出:
    当前边集合: [(0, 1)]
    当前边集合: [(0, 1), (1, 2)]
    
    最终得到符合需求的边结构

内容的提问来源于stack exchange,提问作者abhik saha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:25:25