Thanks I'll give this a try.  numpy.min(grid) reports 0.0 (no
negative) yet it labels as -0.0, BTW, but let me give this a try.

Bruce

---------------------------------------
Bruce W. Ford
Clear Science, Inc.
br...@clearscienceinc.com
http://www.ClearScienceInc.com
http://www.facebook.com/clearscience
http://www.twitter.com/ROVs_rule
Phone: (904) 796-8101
Fax:  (904) 379-9704
8241 Parkridge Circle N.
Jacksonville, FL  32211
Skype:  bruce.w.ford

---------------------------------------
To schedule a meeting with Bruce, Go to: http://tungle.me/bruceford
----------------------------------------




On Fri, Aug 20, 2010 at 4:44 PM, Eric Firing <efir...@hawaii.edu> wrote:
> On 08/20/2010 10:14 AM, Bruce Ford wrote:
>> This effect is happening within an web app that displays gridded
>> fields from multiple datasets (~4500 lines of code).  So I it's tricky
>> to create an example.  Although if I use numpy.min(grid) the minimum
>> is 0.  So, I think colorbar or matplotlib is interpreting the 0 as -0.
>
>
> You are talking about the colorbar tick labels, correct?  The lowest
> tick label is coming out as -0.0?
>
>
>>   (Matplotlib version 0.99.0 RC0)
>>
>> The colorbar call that I'm using is:
>>
>> cbar = pyplot.colorbar(plot,shrink=0.7, format="%1.1f",
>> spacing='proportional',orientation='vertical')
>
> This means your colorbar tick values are simply being formatted by
> python, like this:
>
> In [1]: "%1.1f" % -0.0000001
> Out[1]: '-0.0'
>
> In [2]: "%1.1f" % 0.0000001
> Out[2]: '0.0'
>
> In [3]: "%1.1f" % 0.0
> Out[3]: '0.0'
>
> In [4]: "%1.1f" % -0.0
> Out[4]: '-0.0'
>
> In [5]: import numpy
>
> In [6]: numpy.min(-0.0)
> Out[6]: -0
>
> In [7]: -0.0 == 0.0
> Out[7]: True
>
>
> So I suspect the problem is that a small negative value, or a negative
> zero, is becoming the tick value.  I don't know why.  You may or may not
> want to investigate.
>
> I dimly recall a problem like this cropping up on the list before--but I
> don't remember anything else about it.
>
> Here is a workaround (untested, but should be close):
>
> from matplotlib.ticker import FormatStrFormatter
> class MyCBFormatter(FormatStrFormatter):
>     def __call__(self, x, pos=None):
>         xstr = self.fmt % x
>         if float(xstr) == 0:
>             return self.fmt % 0
>         return xstr
> cbar = pyplot.colorbar(plot,shrink=0.7, format=MyCBFormatter("%1.1f"),
>          spacing='proportional',orientation='vertical')
>
>
> Eric
>
>>
>> cbar.ax.set_ylabel(cbar_label(param,unit))
>>
>> The function cbar_label is:
>>
>> def cbar_label(param,unit):
>>      #Helper function for making colorbar label
>>      if param == "sig":
>>          if unit==1:
>>              cbar_label = "Feet"
>>          else:
>>              cbar_label = "Meters"
>>      elif param == "dir":
>>          cbar_label = "Radial Direction"
>>      elif param == "per":
>>          cbar_label = "Seconds"
>>      elif param[-5:] == "_wind":
>>          if unit == 3:
>>              cbar_label = "Kts"
>>          else:
>>              cbar_label = "M/S"
>>      elif param[-4:] == "_hgt":
>>          if unit == 5:
>>              cbar_label = "GPFt"
>>          else:
>>              cbar_label = "GPM"
>>      elif param == "slp":
>>          cbar_label = "Millibars"
>>      elif param == "1000_rh":
>>          cbar_label = "%"
>>      elif param == "1000_temp":
>>          if unit == 9:
>>              cbar_label = "Degrees F"
>>          else:
>>              cbar_label = "Degrees C"
>>      else:
>>          cbar_label = param
>>      return cbar_label
>>
>> If this doesn't offer anything, I'll try to generate a
>> compartmentalized example of the issue.
>>
>> Bruce
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by
>
> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> http://p.sf.net/sfu/RIM-dev2dev
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to