import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np

# make a timeseries...
base = datetime.datetime(2005, 2, 1)
dates = np.array([base + datetime.timedelta(hours= 2 * i)
                  for i in range(732)])
N = len(dates)
np.random.seed(19680801)
y = np.cumsum(np.random.randn(N))

lims = [(np.datetime64('2005-02'), np.datetime64('2005-04')),
        (np.datetime64('2005-02-03'), np.datetime64('2005-02-15')),
        (np.datetime64('2005-02-03 11:00'), np.datetime64('2005-02-04 13:20'))]
fig, axs = plt.subplots(3, 1, constrained_layout=True)
for nn, ax in enumerate(axs):
    # activate the formatter here.
    locator = mdates.AutoDateLocator()
    formatter = mdates.ConciseDateFormatter(locator)
    ax.xaxis.set_major_locator(locator)
    ax.xaxis.set_major_formatter(formatter)

    ax.plot(dates, y)
    ax.set_xlim(lims[nn])
axs[0].set_title('Concise Date Formatter')

plt.show()