首页 > 解决方案 > NameError:名称“日期”未定义

问题描述

我在尝试调用 dates.MonthLocator() 时收到错误消息“NameError: name 'dates' is not defined”

import pandas as pd
import matplotlib.pyplot as plt

df1 = pd.read_csv('tcs.csv', index_col = 'Date', parse_dates = True)

idx = df1.loc['2019-01-01':'2019-02-01'].index
stk = df1.loc['2019-01-01':'2019-02-01']['Close Price']

fig,ax =plt.subplots()
ax.plot_date(idx,stk,'-')

# ax.xaxis.grid(True)
# ax.yaxis.grid(True)

ax.xaxis.set_major_locator(dates.MonthLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter("%b-%y"))

fig.autofmt_xdate()
plt.tight_layout()

我收到名称错误。

NameError                                 Traceback (most recent call last)
<ipython-input-6-32ecec70e866> in <module>
     13 # ax.yaxis.grid(True)
     14 
---> 15 ax.xaxis.set_major_locator(dates.MonthLocator())
     16 ax.xaxis.set_major_formatter(dates.DateFormatter("%b-%y"))
     17 

NameError: name 'dates' is not defined

这是 df1 的样子。

截屏

请让我知道为什么我会收到此错误

标签: pythonpython-3.xmatplotlib

解决方案


我认为您忘记从 matplotlib 导入子模块“日期”。

将这行代码添加到您的导入中

from matplotlib import dates

推荐阅读