I am plotting Pandas Series data, which records the sum of "events" each week in 1981. The series is named 'weekly_data'.
1981-03-16 1826
1981-03-23 1895
1981-03-30 1964
1981-04-06 1978
1981-04-13 2034
1981-04-20 2073
1981-04-27 2057
dtype: int64
I would like to place ticks by year, and by week. When I try to plot this, I receive an AttributeError:
fig = plt.figure(figsize=(12,5))
ax = plt.subplots(111)
plt.plot(weekly_data, color = 'green' )
yloc = YearLocator()
mloc = MonthLocator()
ax.xaxis.set_major_locator(yloc)
ax.xaxis.set_minor_locator(mloc)
ax.grid(True)
plt.show()
The error is
AttributeError Traceback (most recent call last)
<ipython-input-92-843dbab30ed7> in <module>()
6 yloc = YearLocator()
7 mloc = MonthLocator()
----> 8 ax.xaxis.set_major_locator(yloc)
9 ax.xaxis.set_minor_locator(mloc)
10 ax.grid(True)
AttributeError: 'tuple' object has no attribute 'xaxis'
How can I fix this?
EDIT: Following Mike Mueller, the error above was plt.subplot(111)
. However, I still cannot get weekly ticks to work. Perhaps we need to use ax.set_xticks(major_ticks)
or ax.set_xticks(minor_ticks, minor=True)
Here is the pandas series data I am plotting from 1991
Datetime
1990-12-23 1980
1990-12-30 1860
1991-01-06 1761
1991-01-13 1792
1991-01-20 1825
....
dtype: int64
and this is the code
fig = plt.figure(figsize=(12,5))
ax = plt.subplot(111)
plt.plot(weekly_data1991, color = 'green' )
yloc = YearLocator()
mloc = MonthLocator()
ax.xaxis.set_major_locator(yloc)
ax.xaxis.set_minor_locator(mloc)
ax.grid(True)
plt.show()
Here is the plot output
I am confused myself