Reputation: 133
Im new in this Pandas and Matplotlib, I follow an example from a book and apparently it give me a warning
"MatplotlibDeprecationWarning: The epoch2num function was deprecated in Matplotlib 3.3 and will be removed two minor releases later. base = dates.epoch2num(dt.asi8 / 1.0e9)"
and the X value of axis change from years to some random numbers
import matplotlib.pyplot as plt
from pandas_datareader import data
AMZ = data.DataReader('AMZN', start='2011', end='2018', data_source='yahoo')
AMZ = AMZ['Close']
AMZ.plot()
AMZ.resample('BA').mean().plot(style=':')
AMZ.asfreq('BA').plot(style='--')
plt.show()
Upvotes: 8
Views: 2645
Reputation: 5912
This was caused by a temporary bad interaction between Matplotlib and Pandas and is fixed in both projects.
To work around until the new versions are available:
plt.rcParams['date.epoch'] = '0000-12-31'
Upvotes: 10
Reputation: 133
import matplotlib.pyplot as plt
from pandas_datareader import data
AMZ = data.DataReader('AMZN', start='2011', end='2018', data_source='yahoo')
AMZ = AMZ['Close']
fig, ax = plt.subplots(figsize=(16, 9))
plt.plot(AMZ.index, AMZ, label='AMZ')
plt.plot(AMZ.resample('BA').mean().index, AMZ.resample('BA').mean(), label='resample', linestyle=':')
plt.plot(AMZ.asfreq('BA').index, AMZ.asfreq('BA'), label='asfreq', linestyle='--')
ax.set_xlabel('Date')
plt.show()
This should work like a charm
Upvotes: 0
Reputation: 1204
I ran your code and the axis shows the correct years. The problem is not coming from the code you posted here.
Upvotes: 1