Note
Go to the endto download the full example code.
Date Demo Convert#

importdatetimeimportmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlib.datesimportDateFormatter,DayLocator,HourLocator,drangedate1=datetime.datetime(2000,3,2)date2=datetime.datetime(2000,3,6)delta=datetime.timedelta(hours=6)dates=drange(date1,date2,delta)y=np.arange(len(dates))fig,ax=plt.subplots()ax.plot(dates,y**2,'o')# this is superfluous, since the autoscaler should get it right, but# use date2num and num2date to convert between dates and floats if# you want; both date2num and num2date convert an instance or sequenceax.set_xlim(dates[0],dates[-1])# The hour locator takes the hour or sequence of hours you want to# tick, not the base multipleax.xaxis.set_major_locator(DayLocator())ax.xaxis.set_minor_locator(HourLocator(range(0,25,6)))ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))ax.fmt_xdata=DateFormatter('%Y-%m-%d %H:%M:%S')fig.autofmt_xdate()plt.show()