1 #!/usr/bin/env python
\r
6 Curve and related classes for Hooke.
\r
8 Copyright 2010 by Dr. Rolf Schmidt (Concordia University, Canada)
\r
10 This program is released under the GNU General Public License version 2.
\r
13 from matplotlib.ticker import Formatter
\r
14 import lib.prettyformat
\r
16 class Curve(object):
\r
20 self.decimals = Decimals()
\r
21 self.destination = Destination()
\r
25 self.prefix = Prefix()
\r
29 self.units = Units()
\r
42 class Decimals(object):
\r
49 class Destination(object):
\r
56 class Prefix(object):
\r
63 class PrefixFormatter(Formatter):
\r
65 Formatter (matplotlib) class that uses power prefixes.
\r
67 def __init__(self, decimals=2, prefix='n', use_zero=True):
\r
68 self.decimals = decimals
\r
69 self.prefix = prefix
\r
70 self.use_zero = use_zero
\r
72 def __call__(self, x, pos=None):
\r
73 'Return the format for tick val *x* at position *pos*'
\r
77 multiplier = lib.prettyformat.get_exponent(self.prefix)
\r
78 decimals_str = '%.' + str(self.decimals) + 'f'
\r
79 return decimals_str % (x / (10 ** multiplier))
\r
82 class Units(object):
\r