@header@
 
 
matplotlib.units
index
/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/units.py

The classes here provide support for using custom classes with
matplotlib, eg those that do not expose the array interface but know
how to converter themselves to arrays.  It also supoprts classes with
units and units conversion.  Use cases include converters for custom
objects, eg a list of datetime objects, as well as for objects that
are unit aware.  We don't assume any particular units implementation,
rather a units implementation must provide a ConversionInterface, and
the register with the Registry converter dictionary.  For example,
here is a complete implementation which support plotting with native
datetime objects
 
 
    import matplotlib.units as units
    import matplotlib.dates as dates
    import matplotlib.ticker as ticker
    import datetime
 
    class DateConverter(units.ConversionInterface):
 
        def convert(value, unit):
            'convert value to a scalar or array'
            return dates.date2num(value)
        convert = staticmethod(convert)
 
        def axisinfo(unit):
            'return major and minor tick locators and formatters'
            if unit!='date': return None
            majloc = dates.AutoDateLocator()
            majfmt = dates.AutoDateFormatter(majloc)
            return AxisInfo(majloc=majloc,
                            majfmt=majfmt,
                            label='date')
        axisinfo = staticmethod(axisinfo)
 
 
        def default_units(x):
            'return the default unit for x or None'
            return 'date'
        default_units = staticmethod(default_units)
 
    # finally we register our object type with a converter
    units.registry[datetime.date] = DateConverter()

 
Classes
       
__builtin__.dict(__builtin__.object)
Registry
AxisInfo
ConversionInterface

 
class AxisInfo
    information to support default axis labeling and tick labeling
 
  Methods defined here:
__init__(self, majloc=None, minloc=None, majfmt=None, minfmt=None, label=None)
majloc and minloc: TickLocators for the major and minor ticks
majfmt and minfmt: TickFormatters for the major and minor ticks
label: the default axis label
 
If any of the above are None, the axis will simply use the default

 
class ConversionInterface
    The minimal interface for a converter to take custom instances (or
sequences) and convert them to values mpl can use
 
  Static methods defined here:
axisinfo(unit)
return an units.AxisInfo instance for unit
convert(obj, unit)
convert obj using unit.  If obj is a sequence, return the
converted sequence.  The ouput must be a sequence of scalars
that can be used by the numpy array layer
default_units(x)
return the default unit for x or None
is_numlike(x)
The matplotlib datalim, autoscaling, locators etc work with
scalars which are the units converted to floats given the
current unit.  The converter may be passed these floats, or
arrays of them, even when units are set.  Derived conversion
interfaces may opt to pass plain-ol unitless numbers through
the conversion interface and this is a helper function for
them.

 
class Registry(__builtin__.dict)
    register types with conversion interface
 
 
Method resolution order:
Registry
__builtin__.dict
__builtin__.object

Methods defined here:
__init__(self)
get_converter(self, x)
get the converter interface instance for x, or None

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Methods inherited from __builtin__.dict:
__cmp__(...)
x.__cmp__(y) <==> cmp(x,y)
__contains__(...)
D.__contains__(k) -> True if D has a key k, else False
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__iter__(...)
x.__iter__() <==> iter(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__ne__(...)
x.__ne__(y) <==> x!=y
__repr__(...)
x.__repr__() <==> repr(x)
__setitem__(...)
x.__setitem__(i, y) <==> x[i]=y
clear(...)
D.clear() -> None.  Remove all items from D.
copy(...)
D.copy() -> a shallow copy of D
get(...)
D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
has_key(...)
D.has_key(k) -> True if D has a key k, else False
items(...)
D.items() -> list of D's (key, value) pairs, as 2-tuples
iteritems(...)
D.iteritems() -> an iterator over the (key, value) items of D
iterkeys(...)
D.iterkeys() -> an iterator over the keys of D
itervalues(...)
D.itervalues() -> an iterator over the values of D
keys(...)
D.keys() -> list of D's keys
pop(...)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised
popitem(...)
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty
setdefault(...)
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
update(...)
D.update(E, **F) -> None.  Update D from E and F: for k in E: D[k] = E[k]
(if E has keys else: for (k, v) in E: D[k] = v) then: for k in F: D[k] = F[k]
values(...)
D.values() -> list of D's values

Data and other attributes inherited from __builtin__.dict:
__new__ = <built-in method __new__ of type object at 0x3832b3bfa0>
T.__new__(S, ...) -> a new object with type S, a subtype of T
fromkeys = <built-in method fromkeys of type object at 0xe93470>
dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
v defaults to None.

 
Data
        registry = {}
@footer@