MetPy 1.1.0初始化SkewT触发Line2D无属性错误是否为版本bug
SkewT实例初始化报错解决方案
- 该报错并非最新版MetPy的bug,是你当前使用的MetPy 1.1.0版本与本地安装的高版本Matplotlib存在兼容性问题导致的。
- MetPy 1.1.0是2021年发布的旧版本,仅适配Matplotlib 3.2~3.4版本,Matplotlib 3.5及后续版本调整了刻度、网格线的参数传递逻辑,旧版MetPy没有对应适配,就会触发参数为空的属性错误。
方案1:升级MetPy到最新稳定版(推荐)
直接执行升级命令即可,最新版MetPy已经完成了高版本Matplotlib的适配:
pip install --upgrade metpy
升级完成后原代码即可正常运行,也可使用更规范的初始化写法避免偶发兼容问题:
import matplotlib.pyplot as plt from metpy.plots import SkewT # 先手动创建画布实例再传入SkewT fig = plt.figure(figsize=(9, 9)) skew = SkewT(fig=fig)
方案2:降级Matplotlib到适配版本
如果因其他依赖限制不能升级MetPy,可以把Matplotlib降级到MetPy 1.1.0支持的最高版本:
pip install matplotlib==3.4.3
内容的提问来源于stack exchange,提问作者ClimateUnboxed
相关产品推荐
相关产品推荐

