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

使用NetworkX绘图时出现'_AxesStack' object is not callable错误求助

无权重有向无环图矩阵转换及绘图异常修复

问题概述

  • 矩阵转图环节出现警告,输出被替换为数组
  • 绘图环节报错:'_AxesStack' object is not callable

问题原因与修复步骤

1. 矩阵转有向图的警告问题

默认nx.from_numpy_array()会创建无向图,与需求的有向图类型不匹配,导致类型转换警告。需明确指定创建有向图:

  • 将G=nx.from_numpy_array(A)替换为G=nx.from_numpy_array(A, create_using=nx.DiGraph),或直接使用G=nx.DiGraph(A)。

2. 绘图报错的修复

报错源于两个细节问题:

  • 参数拼写错误:with_lables=True应为with_labels=True(单词拼写错误)
  • Matplotlib后端初始化顺序错误:matplotlib.use('TkAgg')必须放在import matplotlib.pyplot as plt之前,否则会导致后端加载异常。

另外,原代码缺少plt.show(),调用该方法才能显示绘制的图像。

修正后的完整代码

import numpy as np
import matplotlib
matplotlib.use('TkAgg')  # 必须在导入plt前设置后端
import matplotlib.pyplot as plt
import networkx as nx

# 邻接矩阵(注:当前矩阵对应有向图存在环,若需DAG需调整矩阵结构)
A = np.array([[0,1,1,0],
              [1,0,1,1],
              [1,1,0,0],
              [0,1,0,0]])

# 创建有向图
G = nx.from_numpy_array(A, create_using=nx.DiGraph)

# 绘制图形,修正参数并添加显示指令
nx.draw(G, with_labels=True, node_color='lightblue', node_size=1500)
plt.show()

额外说明

当前提供的邻接矩阵对应的有向图存在环(如节点0与1互相指向),如果需要严格的有向无环图(DAG),需调整矩阵元素,确保不存在任何闭环路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:01:26