python - 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 的样子。
请让我知道为什么我会收到此错误
解决方案
我认为您忘记从 matplotlib 导入子模块“日期”。
将这行代码添加到您的导入中
from matplotlib import dates
推荐阅读
- javascript - 如何从特定秒到另一个特定秒播放 youtube 视频?
- c++ - Eigen C++ 中的向量向量
- jsf - 实现逻辑以仅显示一个按钮
- r - 通过将条件识别行中的值复制到新列中来扩大数据框
- kubernetes - Kubernetes:如何删除 StatefulSet 管理的特定 pod 而无需重新创建它?
- javascript - 如何将 setInterval 和 setTimeout 添加到循环中?
- java - Jlink 弹簧靴
- python - & 带数字的运算符
- powershell - 在 Powershell 中根据大小重命名文件
- dictionary - 为什么我的条件只消除字典中的第一个键/值对?