使用 matplotlib 时,AttributeError : 'numpy.datetime64' 对象没有属性 'toordinal'



我刚刚用matplotlib绘制了sp500数据,我得到了的错误

属性错误:"numpy.datetime64"对象没有属性"toordinal"。

我在谷歌上搜索了很长时间,没有找到解决方案。有人能帮我吗?感谢

plt.plot(SP500_df['Date'], 
SP500_df['Adj Close'], label=SYMBOL, color='green')

我确实打印了(SP500_df.info(((,它确实显示日期列是datetime64的类型。

#   Column     Non-Null Count  Dtype
---  ------     --------------  -----
0   Date       83 non-null     datetime64[ns]
1   Adj Close  83 non-null     float64

我使用的是python 3.6,在显示上述错误之前,有的警告

C: \Python36\lib\site packages\matplotlib\axes_base.py:248:future警告:不赞成支持多维索引(例如obj[:, None](,并将在未来版本中删除。在索引之前转换为numpy数组,而不是

我在谷歌上搜索了很长时间,没有找到解决方案。有人能帮我吗?感谢

好吧,我用两种解决方案解决了这个问题:

解决方案1:使用.values,例如

plt.plot(SP500_df['Date'].values, 
SP500_df['Adj Close'].values, label=SYMBOL, color='green')

但我还是不明白为什么?

解决方案2:升级matplotlib并保持所有不变

感谢

最新更新