On Wed, Jun 4, 2008 at 12:01 PM, Ted Drain <[EMAIL PROTECTED]> wrote: > Sorry - I don't think I was very clear in my email. Try this: > > import pylab as p > p.plot( [] () > p.gca().xaxis_date() > p.show()
I did understand that in your first post, but I was focusing more on your comments about a better date class than this specific bug, but I see how the a better class would solve this bug too. But we can work around this -- I committed some changes to the branch and trunk which checks to see if the datalim have been updated on the call to xaxis date and if not it will choose a valid default date range for the date and view lim, but leave the "ignore" setting in place so it won't affect the autoscaling when you actually do add data. Hit it with your standard battery of tests and let me know how it works. Michael, in the process of adding support for this, I added a check to the Axes.update_datalim to ignore empty lists def update_datalim(self, xys): if len(xys): return but when I ran backend driver, I found a bug on contour_demo.py where a non-iterable was being passed in for xys. I added a debug print statement to update_datalim to print type(xys), and here is what I got, along with the traceback [EMAIL PROTECTED]:svn> python ~/mpl/examples/pylab_examples/contour_demo.py <type 'list'> <type 'list'> <type 'list'> <type 'list'> <type 'tuple'> <type 'list'> <type 'numpy.ndarray'> <class 'matplotlib.transforms.Bbox'> Traceback (most recent call last): File "/home/titan/johnh/mpl/examples/pylab_examples/contour_demo.py", line 83, in ? CB = colorbar(CS, shrink=0.8, extend='both') File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/pyplot.py", line 1179, in colorbar ret = gcf().colorbar(mappable, cax = cax, ax=ax, **kw) File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/figure.py", line 965, in colorbar cb = cbar.Colorbar(cax, mappable, **kw) File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/colorbar.py", line 591, in __init__ self.add_lines(CS) File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/colorbar.py", line 612, in add_lines ColorbarBase.add_lines(self, CS.levels, tcolors, tlinewidths) File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/colorbar.py", line 329, in add_lines self.ax.add_collection(col) File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/axes.py", line 1242, in add_collection self.update_datalim(collection.get_datalim(self.transData)) File "/home/titan/johnh/dev/lib/python2.4/site-packages/matplotlib/axes.py", line 1313, in update_datalim if not len(xys): return TypeError: len() of unsized object So the collection.get_datalim is returning a transformed bbox and passing this off to update_datalim. This is easy to work around by adding an iterable(xys) check, which I did on the branch and the trunk, but to be sure I am not masking a bug, I wanted to make sure that this is what should be happening here. I would think we would call update_datalim_bounds for a bbox.... Thanks, JDH JDH ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel