Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pyplot does not have attribute 'xaxis_set_major_formatter'

I am trying to plot hours in the x-axis [in this picture] using this code

#create a lineplot
fig = plt.figure(figsize=(20,5))
ax = fig.add_subplot()
plt.title('SUBIC-NAIA Air Temp Difference. (C)')
ax.plot(date_rng,NASU_dif)
monthyearFmt = mdates.DateFormatter('%Y-%m-%d-%h')
plt.xaxis_set_major_formatter(monthyearFmt)
plt.xlabel('Time Step (hr)')
plt.ylabel('Air Temperature (m/s)')
plt.legend(loc='upper right', prop={'size': 10})
plt.show()

but I am receiving

AttributeError: module 'matplotlib.pyplot' has no attribute 'xaxis_set_major_formatter'

I have a daterng as my index. How do I solve this one?

DatetimeIndex(['2018-04-22 00:00:00', '2018-04-22 01:00:00', '2018-04-22 02:00:00', '2018-04-22 03:00:00', '2018-04-22 04:00:00', '2018-04-22 05:00:00', '2018-04-22 06:00:00', '2018-04-22 07:00:00', '2018-04-22 08:00:00', '2018-04-22 09:00:00', ... '2018-04-29 15:00:00', '2018-04-29 16:00:00', '2018-04-29 17:00:00', '2018-04-29 18:00:00', '2018-04-29 19:00:00', '2018-04-29 20:00:00', '2018-04-29 21:00:00', '2018-04-29 22:00:00', '2018-04-29 23:00:00', '2018-04-30 00:00:00'], dtype='datetime64[ns]', length=193, freq='H')

like image 655
kaelel18 Avatar asked Jun 29 '26 06:06

kaelel18


1 Answers

Find the set_major_formatter method on the Axis object (e.g. ax.xaxis).

ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d-%h'))

If you don't use subplots, you can access the axis object via the gca() method (get current axis)

from matplotlib import pyplot as plt
import matplotlib.dates as mdates
    
plt.plot(... 

ax = plt.gca()
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d-%h'))
like image 113
Tim Van Laer Avatar answered Jul 01 '26 19:07

Tim Van Laer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!