ó
±éRc           @   s{  d  d l  Z  d  d l Z e j Z d  d l j Z d  d l j Z d  d l	 j
 Z d  d l j Z d  d l m Z d  d l m Z d  d l m Z d  d l Z d  d l j Z e j Z d d d     YZ i  Z d d  Z e   Z d d d	     YZ i  Z d d
  Z  e  d e  Z! d   Z" d d d     YZ# i  Z$ d d  Z% d   Z& e% d e  Z' e e'  Z( d   Z) d   Z* d S(   i’’’’N(   t   subplot_class_factory(   t   Axes(   t   Bboxt   ParasiteAxesBasec           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   sy   t  g  |  j   D] } | j   r | ^ q  } t  g  |  j D] } | j   r> | ^ q>  } t |  t | |  f S(   N(   t   sett   get_childrent   get_visiblet   imagest   list(   t   selft   at   artistsR   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   get_images_artists   s    1.c         K   sE   | |  _  | j t d t   |  j d  |  | j | j |  d  S(   Nt   frameont   __init__(   t   _parent_axest   updatet   dictt   Falset   _get_base_axes_attrt   figuret	   _position(   R	   t   parent_axest   kargs(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR      s    	c         C   s   |  j  d  |   t j |  j   d t |  j j |  _ |  j rg |  j j	 d  |  j
 j	 d  n  |  j j	 d  |  j
 j	 d  d  S(   Nt   clat   visibleg      ą?g      @(   R   t   martistt   setpR   R   R   t
   _get_linest
   _axisbelowt   xaxist
   set_zordert   yaxis(   R	   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   $   s    	(   t   __name__t
   __module__R   R   R   (    (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR      s   		c            sv     d  k r t   n  t j    } | d  k rr   f d   } t d   j t   f i | d 6 } | t   <n  | S(   Nc            s   t    |  S(   N(   t   getattr(   R	   t   attrname(   t
   axes_class(    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   ;   s    s
   %sParasiteR   (   t   NoneR   t   _parasite_axes_classest   gett   typeR!   R   (   R%   t	   new_classR   (    (   R%   s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   parasite_axes_class_factory5   s    		t   ParasiteAxesAuxTransBasec           B   sz   e  Z d d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d d  Z RS(   c         K   s0   | |  _  |  j |  |  j j |  | |  d  S(   N(   t   transAuxt   set_viewlim_modet   _parasite_axes_classR   (   R	   R   t   aux_transformt   viewlim_modet   kwargs(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   P   s    	c         C   s_   |  j  j |  _ |  j |  j  j |  _ t j |  j |  j  |  _ t j |  j |  j  |  _ d  S(   N(   R   t	   transAxesR-   t	   transDatat   mtransformst   blended_transform_factoryt   _xaxis_transformt   _yaxis_transform(   R	   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   _set_lim_and_transformsX   s    c         C   s/   | d k r" t d | f   n	 | |  _ d  S(   Nt   equalt	   transforms   Unknown mode : %s(   Ns   equals	   transform(   R&   t
   ValueErrort   _viewlim_mode(   R	   t   mode(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR.   e   s    c         C   s   |  j  S(   N(   R=   (   R	   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   get_viewlim_modek   s    c         C   s   |  j  j j   } |  j   } | d  k r- nl | d k rO |  j j j |  nJ | d k r |  j j j | j |  j j	     n t
 d |  j f   d  S(   NR:   R;   s   Unknown mode : %s(   R   t   viewLimt   frozenR?   R&   t   axesR   t   transformedR-   t   invertedR<   R=   (   R	   t   viewlimR>   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   update_viewlimo   s    (c         O   sh  t  |  d k rp | d } | j \ } } t j d | d  } t j d | d  } t j | |  \ }	 }
 n | \ }	 }
 } |  j |  } | j d  rø | |  |	 |
 | |  } n¬ |	 j } t j |	 j |
 j g  } | j	   } |  j
 j |  } | d  d   d f j |  | d  d   d f j |  } } | |  | | | |  } | j |  j j  | S(   Ni   i    g      ąæg      š?R;   (   t   lent   shapet   npt   aranget   meshgridR   t   has_keyt   vstackt   flatt	   transposeR-   R;   t   reshapet   set_transformR   R4   (   R	   t   method_namet   XYCR2   t   Ct   nyt   nxt   gxt   gyt   Xt   Yt   pcolor_routinet   mesht
   orig_shapet   xyt   xytt   wxy(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   _pcolor|   s$    
	?c         O   s   |  j  d | |  S(   Nt
   pcolormesh(   Ra   (   R	   RS   R2   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyRb      s    c         O   s   |  j  d | |  S(   Nt   pcolor(   Ra   (   R	   RS   R2   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyRc      s    c         O   s  t  |  d k rv | d } | j \ } } t j d | d  } t j d | d  } t j | |  \ }	 }
 | } n | d  \ }	 }
 | d } |  j |  } | j d  rÉ | |  |	 |
 | |  } nĄ |	 j } t j |	 j |
 j g  } | j	   } |  j
 j |  } | d  d   d f j |  | d  d   d f j |  } } | |  | | | |  } x$ | j D] } | j |  j j  qlW| S(   Ni   i    g        g      š?R;   i   (   RG   RH   RI   RJ   RK   R   RL   RM   RN   RO   R-   R;   RP   t   collectionsRQ   R   R4   (   R	   RR   t   XYCLR2   RT   RU   RV   RW   RX   RY   RZ   t   CLt   contour_routinet   contR]   R^   R_   R`   t   c(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   _contour   s*    
	
	?c         O   s   |  j  d | |  S(   Nt   contour(   Rj   (   R	   Re   R2   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyRk   ½   s    c         O   s   |  j  d | |  S(   Nt   contourf(   Rj   (   R	   Re   R2   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyRl   Ą   s    c         C   s!   |  j    |  j d  |   d  S(   Nt   apply_aspect(   RF   R   (   R	   t   position(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyRm   Ć   s    
N(   R!   R"   R&   R   R9   R.   R?   RF   Ra   Rb   Rc   Rj   Rk   Rl   Rm   (    (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR,   O   s   										c         C   s   |  d  k r t } n$ t |  t  s3 t |   } n |  } t j |  } | d  k r t d | j t	 | f i | d 6d d 6 } | t | <n  | S(   Ns   %sParasiteAuxTransR/   t   parasite_axest   name(
   R&   t   ParasiteAxest
   issubclassR   R+   t   _parasite_axes_auxtrans_classesR(   R)   R!   R,   (   R%   t   parasite_axes_classR*   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt$   parasite_axes_auxtrans_class_factoryĖ   s    		
R%   c         C   s½   |  j  } | j |  j  | j g  |  j D] } t | t j  r* | ^ q*  | j g  |  j D] } t | t j  r_ | ^ q_  | j g  |  j D] } t | t j  r | ^ q  | S(   N(	   t   linest   extendt   patchesRd   t
   isinstancet   mcollt   LineCollectiont   RegularPolyCollectiont   CircleCollection(   t   axt   handlesRi   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   _get_handlesć   s    
t   HostAxesBasec           B   sq   e  Z d    Z d d
 d  Z d
 d  Z d   Z d   Z d
 d  Z d
 d  Z	 d
 d
 d  Z
 e d	  Z RS(   c         O   s&   g  |  _  |  j d  |  | |  d  S(   NR   (   t	   parasitesR   (   R	   t   argsR2   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   ń   s    	R:   c         C   s2   t  |  } | |  | |  } |  j j |  | S(   N(   Ru   R   t   append(   R	   t   trR1   R%   Rt   t   ax2(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   get_aux_axes÷   s    c         C   sL   |  j  d  } | |  |  } x' |  j D] } | j | j |   q( W| S(   Nt   _get_legend_handles(   R   R   Rw   R   (   R	   t   legend_handler_mapt   Axes_get_legend_handlest   all_handlesR~   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR      s
    c   
      C   s  t  |  j  } t  |  j  } t |  d  r~ |  j   } | rq | |  |  } |  j | d d |  j |  q |  j   n
 |  j   |  j   } xP |  j D]E } | j |  | j	   \ } }	 |  j j
 |  |  j j
 |	  q W|  j d  |  |  | |  _ | |  _ d  S(   Nt   get_axes_locatort   whicht   activet   draw(   R   R   R   t   hasattrR   t   set_positionRm   t   get_positionR   R   Rw   R   (
   R	   t   renderert   orig_artistst   orig_imagest   locatort   post   rectR~   R   R   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   
  s&    
	c         C   s5   x |  j  D] } | j   q
 W|  j d  |   d  S(   NR   (   R   R   R   (   R	   R~   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   '  s    c         C   sń   | d k r |  j   } n  t |  } | |  d |  d t } |  j j |  |  j d j d t  |  j d j j	 t
  | j d j	 t
  | j d	 j d t  | j d
 j j	 t  | j d j d t
  | j d j j	 t  | S(   s  
        call signature::

          ax2 = ax.twinx()

        create a twin of Axes for generating a plot with a sharex
        x-axis but independent y axis.  The y-axis of self will have
        ticks on left and the returned axes will have ticks on the
        right
        t   sharexR   t   rightt   allt   leftt   topt   bottomN(   s   lefts   topR   (   s   lefts   topR   (   R&   t   _get_base_axesR+   R   R   R   t   axist   togglet   linet   set_visiblet   True(   R	   R%   Rt   R   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   twinx0  s    c         C   sń   | d k r |  j   } n  t |  } | |  d |  d t } |  j j |  |  j d j d t  |  j d j j	 t
  | j d j	 t
  | j d	 j d t  | j d
 j j	 t  | j d j d t
  | j d j j	 t  | S(   s  
        call signature::

          ax2 = ax.twiny()

        create a twin of Axes for generating a plot with a shared
        y-axis but independent x axis.  The x-axis of self will have
        ticks on bottom and the returned axes will have ticks on the
        top
        t   shareyR   R   R   R   R   R   N(   s   lefts   rights   bottom(   s   lefts   rights   bottom(   R&   R   R+   R   R   R   R    R”   R¢   R£   R¤   (   R	   R%   Rt   R   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   twinyR  s    c         C   s  | d	 k r |  j   } n  t |  } | d	 k rQ | |  t j   d d } n | |  | d d } |  j j |  |  j d
 j d t	  |  j d j
 j t	  | j d j t  | j d j d t	  | j d j
 j t	  | j d j d t  | j d j
 j t  | S(   s  
        call signature::

          ax2 = ax.twin()

        create a twin of Axes for generating a plot with a sharex
        x-axis but independent y axis.  The y-axis of self will have
        ticks on left and the returned axes will have ticks on the
        right
        R1   R:   R;   R   R   R   R   R   N(   s   tops   right(   s   tops   right(   s   tops   right(   s   bottoms   left(   s   bottoms   left(   s   tops   right(   s   tops   right(   R&   R   Ru   R5   t   IdentityTransformR   R   R    R”   R   R¢   R£   R¤   (   R	   t	   aux_transR%   t   parasite_axes_auxtrans_classR   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   twins  s"    	c         C   s   g  |  j  D] } | j | |  ^ q
 } |  j d  } | j | |  | |   t j g  | D]* } | j d k s | j d k r] | ^ q]  } | S(   Nt   get_tightbboxi    (   R   R¬   R   R   R   t   uniont   widtht   height(   R	   R   t   call_axes_locatorR~   t   bbsR¬   t   bt   _bbox(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR¬   µ  s    %@N(   R!   R"   R   R&   R   R   R   R   R„   R§   R«   R¤   R¬   (    (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   š   s   		
			"!Bc            s     d  k r t   n  t j    } | d  k r   f d   }   f d   } t d   j t   f i | d 6| d 6 } | t   <n  | S(   Nc            s     S(   N(    (   R	   (   R%   (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   É  s    c            s   t    |  S(   N(   R#   (   R	   R$   (   R%   (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyR   Ģ  s    s
   %sHostAxesR   R   (   R&   R   t   _host_axes_classesR(   R)   R!   R   (   R%   R*   R   R   (    (   R%   s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   host_axes_class_factoryĆ  s    		
c         C   s   t  d |   } t |  } | S(   NR%   (   Rµ   R    (   R%   t   host_axes_classt   subplot_host_class(    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   host_subplot_class_factoryŲ  s    c          O   sf   d d  l  j } | j d d   } t |  } | j   } | | |  |  } | j |  | j   | S(   Ni’’’’R%   (   t   matplotlib.pyplott   pyplott   popR&   Rµ   t   gcft   add_axest   draw_if_interactive(   R   R2   t   pltR%   R¶   t   figR~   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt	   host_axesį  s    
c          O   sf   d d  l  j } | j d d   } t |  } | j   } | | |  |  } | j |  | j   | S(   Ni’’’’R%   (   R¹   Rŗ   R»   R&   Rø   R¼   t   add_subplotR¾   (   R   R2   Ræ   R%   t   host_subplot_classRĄ   R~   (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   host_subplotė  s    
(    (    (    (+   t   warningst
   matplotlibt   rcParamst   matplotlib.artistt   artistR   t   matplotlib.transformst
   transformsR5   t   matplotlib.collectionsRd   Rz   t   matplotlib.legendt   legendt   mlegendt   matplotlib.axesR    t   mpl_axesR   R   t   numpyRI   t   matplotlib.cbookt   cbookt   is_string_likeR   R'   R&   R+   Rq   R,   Rs   Ru   t   ParasiteAxesAuxTransR   R   R“   Rµ   Rø   t   HostAxest   SubplotHostRĮ   RÄ   (    (    (    s_   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axes_grid1/parasite_axes.pyt   <module>   s:   			
{	Ņ		
