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

使用Networkx和Matplotlib绘制关系图时出现TypeError如何解决

错误原因
  • 你预处理得到的edges列表中每个元素已经是(源节点ID, 目标节点ID)的二元组,不是字典结构,因此不能使用edge['source']这种字典取值语法,这是触发报错的直接原因。
  • add_edges_from方法本身支持直接传入边列表批量添加,不需要循环单条边处理;如果要循环添加单条边,应该使用add_edge方法。
  • 节点标签绘制的参数传入错误,nx.draw_networkx_labels需要传入布局位置参数pos,且ID到名称的映射要通过labels参数传递,不需要循环遍历节点。
修改后可运行的完整绘图代码
import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
# 批量添加所有边,无需循环
G.add_edges_from(edges)

# 加seed参数保证每次运行布局一致,可自行调整
pos = nx.spring_layout(G, seed=42)

# 绘制节点
nx.draw_networkx_nodes(G, pos, node_size = 1000, node_color='lightblue')
# 绘制有向边,增加箭头样式优化显示效果
nx.draw_networkx_edges(G, pos, edgelist = G.edges(), edge_color = 'red', arrowstyle='->', arrowsize=20)
# 直接传入节点ID到名称的映射字典绘制标签
nx.draw_networkx_labels(G, pos, labels=nodes, font_size=10)

# 隐藏坐标轴
plt.axis('off')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:24:00