On 29/03/2013 15:49, Mark Lawrence wrote: > Hi all, > > From http://labix.org/python-dateutil > > "To generate a rrule for the use case of "a date on the specified day of > the month, unless it is beyond the end of month, in which case it will > be the last day of the month" use the following: > > rrule(MONTHLY, bymonthday=(some_day, -1), bysetpos=1) > > This will generate a value for every calendar month regardless of the > day of the month it is started from." > > Using bymonthday with MonthLocator gives ticks on the day given and the > last day of the month, which looks extremely ugly. Code below demonstrates. > > from dateutil.rrule import * > import datetime > import matplotlib.pyplot as plt > from matplotlib.ticker import FormatStrFormatter, MultipleLocator > from matplotlib.dates import DateFormatter, MonthLocator, DayLocator > > start = datetime.date(2013, 3, 29) > until = datetime.date(2014, 3, 29) > dates = rrule(MONTHLY, bymonthday=(29, -1), bysetpos=1, until=until) > for d in dates:print(d) > > dates = [start, until] > values = [0, 1] > plt.ylabel('Balance') > plt.grid() > ax = plt.subplot(111) > plt.plot_date(dates, values, fmt = 'rx-') > ax.xaxis.set_major_locator(MonthLocator(bymonthday = (dates[0].day, -1))) > ax.xaxis.set_major_formatter(DateFormatter('%d/%m/%y')) > ax.yaxis.set_major_formatter(FormatStrFormatter('£%0.2f')) > ax.yaxis.set_minor_locator(MultipleLocator(5)) > plt.axis(xmin=dates[0], xmax=dates[-1]) > plt.setp(plt.gca().get_xticklabels(), rotation = 45, fontsize = 10) > plt.setp(plt.gca().get_yticklabels(), fontsize = 10) > plt.show() >
Seems an apt date to realise that I didn't say much :( Assuming that I'm correct would you like an issue raised on the bug tracker? If not please correct the mistake I've made, presumably in reading the docs, which I think are excellent by the way. -- If you're using GoogleCrap™ please read this http://wiki.python.org/moin/GoogleGroupsPython. Mark Lawrence ------------------------------------------------------------------------------ Own the Future-Intel® Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users