|
From: John P. <jo...@ot...> - 2005-03-17 19:49:14
|
Darren, This works great for me - thanks! I should have said this earlier, but matplotlib is excellent! Thank you to everyone who works on it. John Darren Dale wrote: >On Wednesday 16 March 2005 07:59 pm, Darren Dale wrote: > > >>I suggest making the following change to ticker.py, starting >>at line 501 in version 0.72.1: >> >> def le(self, x): >> 'return the largest multiple of base <= x' >> d,m = divmod(x, self._base) >> if closeto(m/self._base,1): # was closeto(m, self._base) >> #looks like floating point error >> return (d+1)*self._base >> else: >> return d*self._base >> >> >> > >I was testing this bugfix with plot([1.4e-12,3.0e-12]), and noticed that the >1.4e-12 ticklabel was being dropped. > >In ticker.py, I suggest replacing Base.ge with: > > def ge(self, x): > 'return the largest multiple of base >= x' > d,m = divmod(x, self._base) > if closeto(m,0) and not closeto(m/self._base,1): return x > return (d+1)*self._base > >The fourth line used to be if m==0: return x, which fails sometimes due to >floating point inaccuracy. John, remember I was complaining about how certain >ticklabels wouldnt get rendered in the new scalarformatter I posted a couple >weeks ago? This was the problem. > >Darren > > > |