Matplotlib代码在类中运行正常,类外为何报Figure无add_sublot属性?
问题成因解答
核心原因为代码拼写错误,与运行环境、代码放在类内/类外的差异无任何关联:
- 你第一段类中代码调用的是
add_subplot,这是Matplotlib Figure类的官方标准方法名,拼写正确因此可以正常运行 - 你第二段类外代码误将方法名写为
add_sublot,漏掉了中间的字母p,Figure类不存在该方法,因此直接抛出属性不存在的异常
修正后的类外代码如下:
import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec fig = plt.figure() gs = GridSpec(1, 2, figure=fig) # 修正拼写错误即可正常运行 fig.add_subplot(gs[0, 0]) fig.add_subplot(gs[0, 1]) plt.show()
建议后续开启IDE的拼写检查、Python类型提示功能,可以提前拦截这类低级拼写错误,减少排查时间。
内容的提问来源于stack exchange,提问作者a52
相关产品推荐
相关产品推荐

