2012/11/22 Jeffrey Melloy <jmel...@gmail.com>: > I'm graphing data from a web service, and seem to have stumbled upon a > bug when dates are graphed without any values. > > Here's a minimum repro: > > import datetime > import matplotlib.pyplot as plt > > fig = plt.figure() > ax = fig.add_subplot(111) > > x = [] > st = datetime.datetime(2012,11,21) > while st < datetime.datetime(2012,11,21, 16, 00): > x.append(st) > st = st + datetime.timedelta(minutes=30) > y = [None] * len(x) > > ax.plot(x,y) > fig.autofmt_xdate() > plt.show() > > > The stack trace I get: > > Traceback (most recent call last): > File "min_mpl.py", line 15, in <module> > fig.autofmt_xdate() > File "c:\python26\lib\site-packages\matplotlib\figure.py", line 318, > in autofmt_xdate > for label in ax.get_xticklabels(): > File "c:\python26\lib\site-packages\matplotlib\axes.py", line 2507, > in get_xticklabels > self.xaxis.get_ticklabels(minor=minor)) > File "c:\python26\lib\site-packages\matplotlib\axis.py", line 1104, > in get_ticklabels > return self.get_majorticklabels() > File "c:\python26\lib\site-packages\matplotlib\axis.py", line 1088, > in get_majorticklabels > ticks = self.get_major_ticks() > File "c:\python26\lib\site-packages\matplotlib\axis.py", line 1186, > in get_major_ticks > numticks = len(self.get_major_locator()()) > File "c:\python26\lib\site-packages\matplotlib\dates.py", line 749, > in __call__ > self.refresh() > File "c:\python26\lib\site-packages\matplotlib\dates.py", line 758, in > refresh > dmin, dmax = self.viewlim_to_dt() > File "c:\python26\lib\site-packages\matplotlib\dates.py", line 530, > in viewlim_to_dt > return num2date(vmin, self.tz), num2date(vmax, self.tz) > File "c:\python26\lib\site-packages\matplotlib\dates.py", line 289, > in num2date > if not cbook.iterable(x): return _from_ordinalf(x, tz) > File "c:\python26\lib\site-packages\matplotlib\dates.py", line 203, > in _from_ordinalf > dt = datetime.datetime.fromordinal(ix) > ValueError: ordinal must be >= 1 > > Adding a 0 & the current date stops getting the exception, but the > range seems wildly messed up. (2011 - 2014).
I can't figure out what's going on here, the calls in the stack trace seem unrelated to Y data. As a quick and dirty workaround you can set the first and last Y values to 0 --won't work well if you use markers. Goyo ------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users