metpy skewT 'Line2D' 对象没有 属性 '' 错误

metpy skewT 'Line2D' object has no property '' error

我只是想设置一个代码来绘制 skewT 图,但是代码在第一次调用设置图发生率时立即失败

import matplotlib.pyplot as plt
from metpy.plots import SkewT
skew=SkewT()

给我以下回溯,这是最新 metpy 版本中的错误吗? (我刚刚升级)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/metpy/plots/skewt.py", line 316, in __init__
    self.ax = fig.add_subplot(*subplot, projection='skewx', rotation=rotation)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/figure.py", line 772, in add_subplot
    ax = subplot_class_factory(projection_class)(self, *args, **pkw)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axes/_subplots.py", line 34, in __init__
    self._axes_class.__init__(self, fig, [0, 0, 1, 1], **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/metpy/plots/skewt.py", line 195, in __init__
    super().__init__(*args, **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/_api/deprecation.py", line 456, in wrapper
    return func(*args, **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axes/_base.py", line 632, in __init__
    self.cla()
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axes/_base.py", line 1249, in cla
    self.grid(False)  # Disable grid on init to use rcParameter
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/_api/deprecation.py", line 299, in wrapper
    return func(*args, **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axes/_base.py", line 3226, in grid
    self.xaxis.grid(visible, which=which, **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/_api/deprecation.py", line 299, in wrapper
    return func(*args, **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axis.py", line 1434, in grid
    self.set_tick_params(which='major', **gridkw)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axis.py", line 873, in set_tick_params
    for tick in self.majorTicks:
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axis.py", line 592, in __get__
    tick = instance._get_tick(major=True)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/metpy/plots/skewt.py", line 134, in _get_tick
    return SkewXTick(self.axes, None, label=None, major=major)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axis.py", line 415, in __init__
    super().__init__(*args, **kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/axis.py", line 160, in __init__
    self.gridline = mlines.Line2D(
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/lines.py", line 393, in __init__
    self.update(kwargs)
  File "/Users/tompkins/Library/Python/3.9/lib/python/site-packages/matplotlib/artist.py", line 1064, in update
    raise AttributeError(f"{type(self).__name__!r} object "
AttributeError: 'Line2D' object has no property ''

我在

Python 3.9.9 (main, Nov 21 2021, 03:23:42) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin

并使用

 metpy.__version__
'1.1.0'

这是由最近发布的 matplotlib 3.5 引起的。我们计划在 MetPy 1.2 中发布对此的修复,计划很快发布。

同时,作为解决方法,您需要降级到 matplotlib 3.4。