import matplotlib matplotlib.rcParams['units'] = True from matplotlib.cbook import iterable, is_numlike import matplotlib.units as units import matplotlib.dates as dates import matplotlib.ticker as ticker import datetime class DateConverter(units.ConversionInterface): @staticmethod def axisinfo(unit, axis): 'return the unit AxisInfo' if unit=='date': majloc = dates.AutoDateLocator() majfmt = dates.AutoDateFormatter(majloc) return units.AxisInfo( majloc = majloc, majfmt = majfmt, label='date', ) else: return None @staticmethod def convert(value, unit, axis): if units.ConversionInterface.is_numlike(value): return value return dates.date2num(value) @staticmethod def default_units(x, axis): 'return the default unit for x or None' return 'date' units.registry[datetime.date] = DateConverter() units.registry[datetime.datetime] = DateConverter()