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

使用brokenaxes绘制双断轴图时遇AttributeError错误求助

解决brokenaxes运行时的AttributeError及代码错误

问题根源

  1. 版本兼容性冲突:AttributeError: 'SubplotSpec' object has no attribute 'is_last_row' 是因为brokenaxes与当前matplotlib版本不匹配——较新的brokenaxes依赖matplotlib 3.4.0+新增的is_last_row属性,旧版matplotlib不支持该属性;反之,新版matplotlib也可能和旧版brokenaxes出现兼容问题。
  2. 代码变量错误:示例代码中定义了大写数组X,但计算Y、Z时误用小写x,会触发NameError。

解决方案

1. 修复代码变量错误

将代码中Y = x**2、Z = x**3改为Y = X**2、Z = X**3,与定义的数组变量名保持一致。

2. 解决版本兼容问题

二选一即可:

  • 升级matplotlib:执行命令升级到3.4.0及以上版本:
    pip install --upgrade matplotlib
    
  • 降级brokenaxes:安装兼容旧版matplotlib的固定版本:
    pip install brokenaxes==0.4.3
    

3. 修正后的完整代码

import matplotlib.pyplot as plt 
from brokenaxes import brokenaxes 
import numpy as np 

fig = plt.figure(figsize=(6,4)) 
baxes = brokenaxes(xlims=((-2,3),(5,8)), ylims=((0,8),(9.5,21)), hspace=.1) 
X = np.array([3,-1,0,4,5,-2,7]) 
Y = X**2
Z = X**3
baxes.plot(X,Y,label="squared") 
baxes.plot(X,Z,label="cubed") 
baxes.legend(loc="best")
plt.show()

运行上述代码即可正常生成双截断轴的图像,无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:27:07