예제 #1
0
파일: helper.py 프로젝트: arsenovic/hftools
 def __call__(self, x, pos=None):
     locs = [abs(y) for y in self.locs if abs(y) != 0]
     if locs and max(locs) / min(locs) <= 10000:
         _, exponent = _help_format_sci(max(locs), 2)
         div = 10 ** exponent
         for dig in range(3):
             digs = [abs((int((elem / div) * 10 ** dig) -
                         (elem / div) * 10 ** dig)) for elem in self.locs]
             if max(digs) < 0.001:
                 self.fmt = "%%.%df" % dig
                 break
         else:
             self.fmt = "%%.%df" % self.digs
         if self.set_label_fun and self.label_template:
             prefix = si_exp_to_prefixes.get(exponent, "q")
             if prefix == "q":
                 prefix = ""
                 div = 1
                 self.fmt = "%%.%de" % self.digs
             xlabel = self.label_template % dict(prefix=prefix,
                                                 powerprefix=exponent)
             self.set_label_fun(xlabel)
         return FormatStrFormatter.__call__(self, x / div, pos)
     else:
         self.engfmt.locs = self.locs
         return self.engfmt(x, pos)
예제 #2
0
 def __call__(self, x, pos=None):
     locs = [abs(y) for y in self.locs if abs(y) != 0]
     if locs and max(locs) / min(locs) <= 10000:
         _, exponent = _help_format_sci(max(locs), 2)
         div = 10**exponent
         for dig in range(3):
             digs = [
                 abs((int((elem / div) * 10**dig) - (elem / div) * 10**dig))
                 for elem in self.locs
             ]
             if max(digs) < 0.001:
                 self.fmt = "%%.%df" % dig
                 break
         else:
             self.fmt = "%%.%df" % self.digs
         if self.set_label_fun and self.label_template:
             prefix = si_exp_to_prefixes.get(exponent, "q")
             if prefix == "q":
                 prefix = ""
                 div = 1
                 self.fmt = "%%.%de" % self.digs
             xlabel = self.label_template % dict(prefix=prefix,
                                                 powerprefix=exponent)
             self.set_label_fun(xlabel)
         return FormatStrFormatter.__call__(self, x / div, pos)
     else:
         self.engfmt.locs = self.locs
         return self.engfmt(x, pos)
예제 #3
0
파일: helper.py 프로젝트: arsenovic/hftools
 def __call__(self, x, pos=None):
     div = 1
     prefix = ""
     for dig in range(3):
         digs = [abs((int((elem / div) * 10 ** dig) -
                     (elem / div) * 10 ** dig)) for elem in self.locs]
         if max(digs) < 0.001:
             self.fmt = "%%.%df" % dig
             break
     else:
         self.fmt = "%.3f"
     if self.set_label_fun and self.label_template:
         xlabel = self.label_template % dict(prefix=prefix)
         self.set_label_fun(xlabel)
     return FormatStrFormatter.__call__(self, x / div, pos)
예제 #4
0
 def __call__(self, x, pos=None):
     div = 1
     prefix = ""
     for dig in range(3):
         digs = [
             abs((int((elem / div) * 10**dig) - (elem / div) * 10**dig))
             for elem in self.locs
         ]
         if max(digs) < 0.001:
             self.fmt = "%%.%df" % dig
             break
     else:
         self.fmt = "%.3f"
     if self.set_label_fun and self.label_template:
         xlabel = self.label_template % dict(prefix=prefix)
         self.set_label_fun(xlabel)
     return FormatStrFormatter.__call__(self, x / div, pos)
예제 #5
0
 def __call__(self, v, i=0):
     return FormatStrFormatter.__call__(self, v*self._factor, i)