Начиная с решения Мауро, я попытался построить пару данных, где даты расположены нерегулярно, чтобы я мог найти этот QA когда-нибудь в будущем.
import pylab as plt
from matplotlib.ticker import FixedLocator
from matplotlib.dates import DateFormatter
import numpy as np
from datetime import datetime
# dates, irregularly spaced
y = 2010, 2010, 2010, 2011, 2011
m = 9, 11, 12, 3, 4
dates = np.array([plt.date2num(datetime(yy,mm,1)) for yy,mm in zip(y,m)])
print dates
# just some data
data = dates**2
print data
plt.plot_date(dates,data)
ax = plt.gca()
# need some more thnking for properly locate which date to label
#ax.xaxis.set_major_locator(FixedLocator(dates[[1, 10, len(dates)-1]]))
ax.xaxis.set_major_formatter(DateFormatter("%Y-%m"))
plt.show()