ó
 m[c           @` s!  d  d l  m Z m Z m Z m Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z m Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d e f d „  ƒ  YZ! d e f d „  ƒ  YZ" d e f d „  ƒ  YZ# d e f d „  ƒ  YZ$ d e f d „  ƒ  YZ% d e f d „  ƒ  YZ& d e f d „  ƒ  YZ' d e f d  „  ƒ  YZ( d! e f d" „  ƒ  YZ) d# e f d$ „  ƒ  YZ* d% e f d& „  ƒ  YZ+ d' e f d( „  ƒ  YZ, d) e f d* „  ƒ  YZ- d+ e f d, „  ƒ  YZ. i e d- 6e( d. 6e+ d/ 6e. d0 6Z/ d1 „  Z0 d2 „  Z1 e
 j2 e1 j3 ƒ i d3 j4 e0 ƒ  ƒ d4 6e1 _3 d5 „  Z5 d6 „  Z6 e j7 j8 d7 d3 j4 g  e0 ƒ  D] Z9 e: e9 ƒ ^ qòƒ d8 e6 ƒ  j; ƒ  ƒ d S(9   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   ma(   t   cbookt	   docstringt   rcParams(
   t   NullFormattert   ScalarFormattert   LogFormatterSciNotationt   LogitFormattert   NullLocatort
   LogLocatort   AutoLocatort   AutoMinorLocatort   SymmetricalLogLocatort   LogitLocator(   t	   Transformt   IdentityTransformt	   ScaleBasec           B` s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   u@  
    The base class for all scales.

    Scales are separable transformations, working on a single dimension.

    Any subclasses will want to override:

      - :attr:`name`
      - :meth:`get_transform`
      - :meth:`set_default_locators_and_formatters`

    And optionally:
      - :meth:`limit_range_for_scale`
    c         C` s   t  ƒ  ‚ d S(   uq   
        Return the :class:`~matplotlib.transforms.Transform` object
        associated with this scale.
        N(   t   NotImplementedError(   t   self(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   get_transform    s    c         C` s   t  ƒ  ‚ d S(   u¦   
        Set the :class:`~matplotlib.ticker.Locator` and
        :class:`~matplotlib.ticker.Formatter` objects on the given
        axis to match this scale.
        N(   R   (   R   t   axis(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt#   set_default_locators_and_formatters'   s    c         C` s
   | | f S(   uù   
        Returns the range *vmin*, *vmax*, possibly limited to the
        domain supported by this scale.

        *minpos* should be the minimum positive value in the data.
         This is used by log scales to determine a minimum value.
        (    (   R   t   vmint   vmaxt   minpos(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   limit_range_for_scale/   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR      s   		t   LinearScalec           B` s/   e  Z d  Z d Z d „  Z d „  Z d „  Z RS(   u#   
    The default linear scale.
    u   linearc         K` s   d  S(   N(    (   R   R   t   kwargs(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   __init__A   s    c         C` sa   | j  t ƒ  ƒ | j t ƒ  ƒ | j t ƒ  ƒ t d rM | j t ƒ  ƒ n | j t	 ƒ  ƒ d S(   ud   
        Set the locators and formatters to reasonable defaults for
        linear scaling.
        u   xtick.minor.visibleN(
   t   set_major_locatorR   t   set_major_formatterR	   t   set_minor_formatterR   R   t   set_minor_locatorR   R   (   R   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR   D   s    
c         C` s   t  ƒ  S(   uy   
        The transform for linear scaling is just the
        :class:`~matplotlib.transforms.IdentityTransform`.
        (   R   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR   R   s    (   R   R   R    t   nameR#   R   R   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR!   :   s
   		t   LogTransformBasec           B` s>   e  Z d  Z d  Z e Z e Z d d „ Z d „  Z d „  Z	 RS(   i   u   clipc         C` s,   t  j |  ƒ i t d 6t d 6| |  _ d  S(   Nu   clipu   mask(   R   R#   t   Truet   Falset   _clip(   R   t   nonpos(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   `   s    c         C` sd   t  j d d d d ƒ F t  j | ƒ } | t  j |  j ƒ } |  j rZ d | | d k <n  Wd  QX| S(   Nt   divideu   ignoret   invalidiüÿÿi    (   t   npt   errstatet   logt   baseR,   (   R   t   at   out(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   transform_non_affined   s    	
c         C` s(   d j  t |  ƒ j |  j r! d n d ƒ S(   Nu   {}({!r})u   clipu   mask(   t   formatt   typeR   R,   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   __str__v   s    (
   R   R   t
   input_dimst   output_dimsR*   t   is_separablet   has_inverseR#   R6   R9   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR)   Z   s   	t   InvertedLogTransformBasec           B` s2   e  Z d  Z d  Z e Z e Z d „  Z d „  Z RS(   i   c         C` s   t  j |  j | ƒ S(   N(   R   t   powerR3   (   R   R4   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR6      s    c         C` s   d j  t |  ƒ j ƒ S(   Nu   {}()(   R7   R8   R   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR9   „   s    (	   R   R   R:   R;   R*   R<   R=   R6   R9   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR>   {   s   	t   Log10Transformc           B` s   e  Z d  Z d „  Z RS(   g      $@c         C` s   t  ƒ  S(   N(   t   InvertedLog10Transform(   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   inverted‹   s    (   R   R   R3   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR@   ˆ   s   RA   c           B` s   e  Z d  Z d „  Z RS(   g      $@c         C` s   t  ƒ  S(   N(   R@   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   ’   s    (   R   R   R3   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRA      s   t   Log2Transformc           B` s   e  Z d  Z d „  Z RS(   g       @c         C` s   t  ƒ  S(   N(   t   InvertedLog2Transform(   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   ™   s    (   R   R   R3   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRC   –   s   RD   c           B` s   e  Z d  Z d „  Z RS(   g       @c         C` s   t  ƒ  S(   N(   RC   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB       s    (   R   R   R3   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRD      s   t   NaturalLogTransformc           B` s   e  Z e j Z d  „  Z RS(   c         C` s   t  ƒ  S(   N(   t   InvertedNaturalLogTransform(   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   §   s    (   R   R   R0   t   eR3   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRE   ¤   s   	RF   c           B` s   e  Z e j Z d  „  Z RS(   c         C` s   t  ƒ  S(   N(   RE   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   ®   s    (   R   R   R0   RG   R3   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRF   «   s   	t   LogTransformc           B` s   e  Z d  d „ Z d „  Z RS(   u   clipc         C` s   t  j |  | ƒ | |  _ d  S(   N(   R)   R#   R3   (   R   R3   R-   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   ³   s    c         C` s   t  |  j ƒ S(   N(   t   InvertedLogTransformR3   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   ·   s    (   R   R   R#   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRH   ²   s   RI   c           B` s   e  Z d  „  Z d „  Z RS(   c         C` s   t  j |  ƒ | |  _ d  S(   N(   R>   R#   R3   (   R   R3   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   ¼   s    c         C` s   t  |  j ƒ S(   N(   RH   R3   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   À   s    (   R   R   R#   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRI   »   s   	t   LogScalec           B` sn   e  Z d  Z d Z e Z e Z e Z e Z e Z e	 Z	 e
 Z
 e Z e Z d „  Z d „  Z d „  Z d „  Z RS(   uÔ  
    A standard logarithmic scale.  Care is taken so non-positive
    values are not plotted.

    For computational efficiency (to push as much as possible to Numpy
    C code in the common cases), this scale provides different
    transforms depending on the base of the logarithm:

       - base 10 (:class:`Log10Transform`)
       - base 2 (:class:`Log2Transform`)
       - base e (:class:`NaturalLogTransform`)
       - arbitrary base (:class:`LogTransform`)
    u   logc         K` sy  | j  d k rH | j d d ƒ } | j d d ƒ } | j d d ƒ } n6 | j d d ƒ } | j d d ƒ } | j d	 d ƒ } t | ƒ r¦ t d
 d j | ƒ ƒ ‚ n  | d k rÁ t d ƒ ‚ n  | d k sÙ | d k rè t d ƒ ‚ n  | d k r	|  j | ƒ |  _ nZ | d k r*|  j | ƒ |  _ n9 | t	 j
 k rN|  j | ƒ |  _ n |  j | | ƒ |  _ | |  _ | |  _ d S(   u"  
        *basex*/*basey*:
           The base of the logarithm

        *nonposx*/*nonposy*: ['mask' | 'clip' ]
          non-positive values in *x* or *y* can be masked as
          invalid, or clipped to a very small positive number

        *subsx*/*subsy*:
           Where to place the subticks between each major tick.
           Should be a sequence of integers.  For example, in a log10
           scale: ``[2, 3, 4, 5, 6, 7, 8, 9]``

           will place 8 logarithmically spaced minor ticks between
           each major tick.
        u   xu   basexg      $@u   subsxu   nonposxu   clipu   baseyu   subsyu   nonposyur   provided too many kwargs, can only pass {'basex', 'subsx', nonposx'} or {'basey', 'subsy', nonposy'}.  You passed u   {!r}u   masku/   nonposx, nonposy kwarg must be 'mask' or 'clip'i    i   u#   The log base cannot be <= 0 or == 1g       @N(   u   masku   clip(   t	   axis_namet   popt   Nonet   lent
   ValueErrorR7   R@   t
   _transformRC   R0   RG   RE   RH   R3   t   subs(   R   R   R"   R3   RQ   R-   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   ß   s.    	c         C` sq   | j  t |  j ƒ ƒ | j t |  j ƒ ƒ | j t |  j |  j ƒ ƒ | j t |  j d |  j d k	 ƒƒ d S(   ub   
        Set the locators and formatters to specialized versions for
        log scaling.
        t   labelOnlyBaseN(	   R$   R   R3   R%   R
   R'   RQ   R&   RM   (   R   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR     s    c         C` s   |  j  S(   u   
        Return a :class:`~matplotlib.transforms.Transform` instance
        appropriate for the given logarithm base.
        (   RP   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR     s    c         C` sF   t  j | ƒ s d } n  | d k r* | n | | d k r? | n | f S(   u6   
        Limit the domain to positive values.
        gYóøÂn¥i    (   R0   t   isfinite(   R   R   R   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR   #  s    	(   R   R   R    R(   R)   R@   RA   RC   RD   RE   RF   RH   RI   R#   R   R   R   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRJ   Ä   s   	1		t   SymmetricalLogTransformc           B` s;   e  Z d  Z d  Z e Z e Z d „  Z d „  Z d „  Z	 RS(   i   c         C` sV   t  j |  ƒ | |  _ | |  _ | |  _ | d |  j d |  _ t j | ƒ |  _ d  S(   Ng      ð?iÿÿÿÿ(	   R   R#   R3   t	   linthresht   linscalet   _linscale_adjR0   R2   t	   _log_base(   R   R3   RU   RV   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   5  s    			c         C` s   t  j | ƒ } t j | |  j |  j d t ƒ} | |  j |  j t j t  j | ƒ |  j ƒ |  j	 } | j
 j ƒ  r• t j | j
 | |  j | ƒ S| Sd  S(   Nt   copy(   R0   t   signR   t   masked_insideRU   R+   RW   R2   t   absRX   t   maskt   anyt   where(   R   R4   RZ   t   maskedR2   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR6   =  s    			
(c         C` s   t  |  j |  j |  j ƒ S(   N(   t   InvertedSymmetricalLogTransformR3   RU   RV   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   K  s    (
   R   R   R:   R;   R*   R<   R=   R#   R6   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRT   /  s   		Ra   c           B` s;   e  Z d  Z d  Z e Z e Z d „  Z d „  Z d „  Z	 RS(   i   c         C` sh   t  j |  ƒ t | | | ƒ } | |  _ | |  _ | j | ƒ |  _ | |  _ | d |  j d |  _ d  S(   Ng      ð?iÿÿÿÿ(	   R   R#   RT   R3   RU   t	   transformt   invlinthreshRV   RW   (   R   R3   RU   RV   t   symlog(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   V  s    			c         C` s—   t  j | ƒ } t j | |  j |  j d t ƒ} | |  j t j |  j | | |  j |  j	 ƒ } | j
 j ƒ  r t j | j
 | |  j	 | ƒ S| Sd  S(   NRY   (   R0   RZ   R   R[   Rc   R+   RU   R?   R3   RW   R]   R^   R_   (   R   R4   RZ   R`   t   exp(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR6   _  s    
c         C` s   t  |  j |  j |  j ƒ S(   N(   RT   R3   RU   RV   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   k  s    	(
   R   R   R:   R;   R*   R<   R=   R#   R6   RB   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRa   P  s   			t   SymmetricalLogScalec           B` s;   e  Z d  Z d Z e Z e Z d „  Z d „  Z d „  Z RS(   uh  
    The symmetrical logarithmic scale is logarithmic in both the
    positive and negative directions from the origin.

    Since the values close to zero tend toward infinity, there is a
    need to have a range around zero that is linear.  The parameter
    *linthresh* allows the user to specify the size of this range
    (-*linthresh*, *linthresh*).
    u   symlogc         K` s3  | j  d k rZ | j d d ƒ } | j d d ƒ } | j d d ƒ } | j d d ƒ } nH | j d	 d ƒ } | j d
 d ƒ } | j d d ƒ } | j d d ƒ } | d k r½ t d ƒ ‚ n  | d k rØ t d ƒ ‚ n  | d k ró t d ƒ ‚ n  |  j | | | ƒ |  _ | |  _ | |  _ | |  _ | |  _	 d S(   u"  
        *basex*/*basey*:
           The base of the logarithm

        *linthreshx*/*linthreshy*:
          A single float which defines the range (-*x*, *x*), within
          which the plot is linear. This avoids having the plot go to
          infinity around zero.

        *subsx*/*subsy*:
           Where to place the subticks between each major tick.
           Should be a sequence of integers.  For example, in a log10
           scale: ``[2, 3, 4, 5, 6, 7, 8, 9]``

           will place 8 logarithmically spaced minor ticks between
           each major tick.

        *linscalex*/*linscaley*:
           This allows the linear range (-*linthresh* to *linthresh*)
           to be stretched relative to the logarithmic range.  Its
           value is the number of decades to use for each half of the
           linear range.  For example, when *linscale* == 1.0 (the
           default), the space used for the positive and negative
           halves of the linear range will be equal to one decade in
           the logarithmic range.
        u   xu   basexg      $@u
   linthreshxg       @u   subsxu	   linscalexg      ð?u   baseyu
   linthreshyu   subsyu	   linscaleyu#   'basex/basey' must be larger than 1g        u(   'linthreshx/linthreshy' must be positiveu'   'linscalex/linthreshy' must be positiveN(
   RK   RL   RM   RO   RT   RP   R3   RU   RV   RQ   (   R   R   R"   R3   RU   RQ   RV   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#     s,    				c         C` sb   | j  t |  j ƒ  ƒ ƒ | j t |  j ƒ ƒ | j t |  j ƒ  |  j ƒ ƒ | j t	 ƒ  ƒ d S(   un   
        Set the locators and formatters to specialized versions for
        symmetrical log scaling.
        N(
   R$   R   R   R%   R
   R3   R'   RQ   R&   R   (   R   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR   µ  s
    c         C` s   |  j  S(   uE   
        Return a :class:`SymmetricalLogTransform` instance.
        (   RP   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR   À  s    (	   R   R   R    R(   RT   Ra   R#   R   R   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRf   p  s   		6	t   LogitTransformc           B` sG   e  Z d  Z d  Z e Z e Z d d „ Z d „  Z d „  Z	 d „  Z
 RS(   i   u   maskc         C` s5   t  j |  ƒ | |  _ i t d 6t d 6| |  _ d  S(   Nu   clipu   mask(   R   R#   t   _nonposR*   R+   R,   (   R   R-   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   Í  s    	c         C` sf   t  j d d d d ƒ  t  j | d | ƒ } Wd QX|  j rb d | | d k <d | d | k <n  | S(	   u,   logit transform (base 10), masked or clippedR.   u   ignoreR/   i   Niüÿÿi    iè  (   R0   R1   t   log10R,   (   R   R4   R5   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR6   Ò  s    	c         C` s   t  |  j ƒ S(   N(   t   LogisticTransformRh   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   Û  s    c         C` s(   d j  t |  ƒ j |  j r! d n d ƒ S(   Nu   {}({!r})u   clipu   mask(   R7   R8   R   R,   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR9   Þ  s    (   R   R   R:   R;   R*   R<   R=   R#   R6   RB   R9   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRg   Ç  s   			Rj   c           B` sG   e  Z d  Z d  Z e Z e Z d d „ Z d „  Z d „  Z	 d „  Z
 RS(   i   u   maskc         C` s   t  j |  ƒ | |  _ d  S(   N(   R   R#   Rh   (   R   R-   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#   é  s    c         C` s   d d d | S(   u   logistic transform (base 10)g      ð?i   i
   (    (   R   R4   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR6   í  s    c         C` s   t  |  j ƒ S(   N(   Rg   Rh   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRB   ñ  s    c         C` s   d j  t |  ƒ j |  j ƒ S(   Nu   {}({!r})(   R7   R8   R   Rh   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR9   ô  s    (   R   R   R:   R;   R*   R<   R=   R#   R6   RB   R9   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRj   ã  s   		t
   LogitScalec           B` s;   e  Z d  Z d Z d d „ Z d „  Z d „  Z d „  Z RS(   uÜ   
    Logit scale for data between zero and one, both excluded.

    This scale is similar to a log scale close to zero and to one, and almost
    linear around 0.5. It maps the interval ]0, 1[ onto ]-infty, +infty[.
    u   logitu   maskc         C` s.   | d k r t  d ƒ ‚ n  t | ƒ |  _ d S(   u   
        *nonpos*: ['mask' | 'clip' ]
          values beyond ]0, 1[ can be masked as invalid, or clipped to a number
          very close to 0 or 1
        u   masku   clipu/   nonposx, nonposy kwarg must be 'mask' or 'clip'N(   u   masku   clip(   RO   Rg   RP   (   R   R   R-   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR#     s    c         C` s   |  j  S(   u<   
        Return a :class:`LogitTransform` instance.
        (   RP   (   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR     s    c         C` sJ   | j  t ƒ  ƒ | j t ƒ  ƒ | j t d t ƒ ƒ | j t ƒ  ƒ d  S(   Nt   minor(   R$   R   R%   R   R'   R*   R&   (   R   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR     s    c         C` sJ   t  j | ƒ s d } n  | d k r* | n | | d k rC d | n | f S(   uH   
        Limit the domain to values between 0 and 1 (excluded).
        gH¯¼šò×z>i    i   (   R0   RS   (   R   R   R   R   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyR     s    	(   R   R   R    R(   R#   R   R   R   (    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyRk   ø  s   		u   linearu   logu   symlogu   logitc           C` s
   t  t ƒ S(   N(   t   sortedt   _scale_mapping(    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   get_scale_names,  s    c         K` sQ   |  j  ƒ  }  |  d k r! d }  n  |  t k r@ t d |  ƒ ‚ n  t |  | |  S(   uC   
    Return a scale class by name.

    ACCEPTS: [ %(names)s ]
    u   linearu   Unknown scale type '%s'N(   t   lowerRM   Rn   RO   (   t   scaleR   R"   (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   scale_factory0  s    	u    | u   namesc         C` s   |  t  |  j <d S(   ud   
    Register a new kind of scale.

    *scale_class* must be a subclass of :class:`ScaleBase`.
    N(   Rn   R(   (   t   scale_class(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   register_scaleB  s    c          C` s­   g  }  x— t  ƒ  D]Œ } t | } |  j d | ƒ |  j d ƒ t j | j j ƒ } d j g  | j d ƒ D] } d | ^ qi ƒ } |  j | ƒ |  j d ƒ q Wd j |  ƒ S(   uF   
    Helper function for generating docstrings related to scales.
    u       '%s'u    u   
u           %s
(	   Ro   Rn   t   appendR   t   dedentR#   R    t   joint   split(   t   docsR(   Rs   t
   class_docst   x(    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   get_scale_docsK  s    
	&Rq   t
   scale_docs(<   t
   __future__R    R   R   R   t   sixt   numpyR0   R   t
   matplotlibR   R   R   t   matplotlib.tickerR   R	   R
   R   R   R   R   R   R   R   t   matplotlib.transformsR   R   t   objectR   R!   R)   R>   R@   RA   RC   RD   RE   RF   RH   RI   RJ   RT   Ra   Rf   Rg   Rj   Rk   Rn   Ro   Rr   Rv   R    Rw   Rt   R|   t   interpdt   updateR{   t   reprt   rstrip(    (    (    s/   lib/python2.7/site-packages/matplotlib/scale.pyt   <module>   sN   "F) !		k! W,
					+