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

如何在NetworkX中将图节点标签修改为自定义名称

解决NetworkX绘图自定义节点标签问题

你现有代码存在两个需要调整的问题:

  • 标签映射字典方向写反:nx.draw()的labels参数要求传入{原始节点值: 要显示的标签}格式的字典,你当前写的是{标签: 节点值},方向完全相反
  • 字典存在重复键:Python字典中重复的键会被后定义的内容覆盖,你当前的nodes_labels里重复写了C、D键,会导致前面的定义失效,需要先整理好正确的节点-标签对应关系:1对应A、2对应B、3对应C、4对应C、5对应D、6对应E

修正后的完整可运行代码如下:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
edges= [(1,2),(1,3),(2,4),(2,5),(5,6)]
G.add_edges_from(edges)
# 修正为正确方向的标签映射字典
nodes_labels = {1:"A", 2:"B", 3:"C", 4:"C", 5:"D", 6:"E"}
# 绘图时传入labels参数指定自定义标签
nx.draw(G, labels=nodes_labels, with_labels=True)
plt.show()

如果你后续所有操作都希望用字母作为节点ID,可以选择直接重命名图的节点,后续绘图无需额外传labels参数:

# 直接重命名图节点
G = nx.relabel_nodes(G, nodes_labels)
# 直接绘图即可显示字母标签
nx.draw(G, with_labels=True)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:36:03