【问题标题】:NameError: name 'dates' is not definedNameError:名称“日期”未定义
【发布时间】:2019-03-24 14:24:36
【问题描述】:

我在尝试调用 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 的样子。

请告诉我为什么会出现此错误

【问题讨论】:

    标签: python python-3.x matplotlib


    【解决方案1】:

    我想你忘了从 matplotlib 导入子模块“日期”。

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

    from matplotlib import dates
    

    【讨论】:

      【解决方案2】:

      "dates" 是 matplotlib 的一个模块(如果我理解得很好的话)。 所以你必须导入“matplotlib.dates”才能使用它,比如:

      >>> from matplotlib import dates
      >>> dates.MonthLocator
      <class 'matplotlib.dates.MonthLocator'>
      

      【讨论】:

        猜你喜欢
        • 2013-11-24
        • 1970-01-01
        • 2019-01-29
        • 1970-01-01
        • 2018-09-15
        • 2018-01-24
        • 1970-01-01
        相关资源
        最近更新 更多