From 111a3c1584b51db32e21207825d6b1fdba0b303a Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Mon, 26 Dec 2011 09:15:47 -0800 Subject: [PATCH] DOC: Better x-axis labelling of PR plot. --- doc/tools/plot_pr.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/doc/tools/plot_pr.py b/doc/tools/plot_pr.py index 748c9b3f..29f3b094 100644 --- a/doc/tools/plot_pr.py +++ b/doc/tools/plot_pr.py @@ -7,6 +7,7 @@ import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatter import dateutil.parser +from dateutil.relativedelta import relativedelta from datetime import datetime, timedelta cache = '_pr_cache.txt' @@ -24,6 +25,8 @@ releases = OrderedDict([ ('0.3', u'2011-10-10 03:28:47 -0700'), ('0.4', u'2011-12-03 14:31:32 -0800')]) +month_duration = 16 + for r in releases: releases[r] = dateutil.parser.parse(releases[r]) @@ -89,17 +92,27 @@ dates_f = seconds_from_epoch(dates) def date_formatter(value, _): dt = epoch + timedelta(seconds=value) - return dt.strftime('%Y/%m/%d') + return dt.strftime('%Y/%m') plt.figure(figsize=(7, 5)) -plt.hist(dates_f, bins=80) + +now = datetime.now(tz=dates[0].tzinfo) +this_month = datetime(year=now.year, month=now.month, day=1, + tzinfo=dates[0].tzinfo) + +bins = [this_month - relativedelta(months=i) \ + for i in reversed(range(-1, month_duration))] +bins = seconds_from_epoch(bins) +plt.hist(dates_f, bins=bins) ax = plt.gca() ax.xaxis.set_major_formatter(FuncFormatter(date_formatter)) +ax.set_xticks(bins[:-1]) labels = ax.get_xticklabels() for l in labels: l.set_rotation(40) + l.set_size(10) for version, date in releases.items():