【问题标题】:AttributeError: 'datetime.timezone' object has no attribute '_utcoffset'AttributeError:“datetime.timezone”对象没有属性“_utcoffset”
【发布时间】:2019-05-24 06:19:42
【问题描述】:

升级 matplotlib 后,我失去了绘制日期时间对象的能力。

错误如下:

  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2813, in plot
    is not None else {}), **kwargs)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/__init__.py", line 1810, in inner
    return func(ax, *args, **kwargs)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 1611, in plot
    for line in self._get_lines(*args, **kwargs):
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 393, in _grab_next_args
    yield from self._plot_args(this, kwargs)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 370, in _plot_args
    x, y = self._xy_from_xy(x, y)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 204, in _xy_from_xy
    bx = self.axes.xaxis.update_units(x)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axis.py", line 1475, in update_units
    self.set_units(default)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axis.py", line 1548, in set_units
    self._update_axisinfo()
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/axis.py", line 1490, in _update_axisinfo
    info = self.converter.axisinfo(self.units, self)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/plotting/_converter.py", line 353, in axisinfo
    majfmt = PandasAutoDateFormatter(majloc, tz=tz)
  File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/plotting/_converter.py", line 367, in __init__
    self._tz._utcoffset = self._tz.utcoffset(None)
AttributeError: 'datetime.timezone' object has no attribute '_utcoffset'

是否可以在不丢失 Python 功能的情况下进行升级?

【问题讨论】:

标签: python datetime matplotlib


【解决方案1】:

我认为this question 指出了一个可行的解决方法。基本上,如果您将 pandas 时间戳转换为 str,然后再转换回 datetime,它就会神奇地起作用。

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 2021-04-19
    • 2012-12-01
    • 2021-04-19
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多