Ë
    ´2ÚiÓU  ã                   óÔ   — d dl mZ d dlZd dlmZ d dlZd dlmZm	Z	 d dl
mZ ddlmZmZmZ ddlmZmZ  G d	„ d
«      Z e	j(                  ed«      Z G d„ d«      Z G d„ de«      ZeZy)é    )ÚNumberN)Ú
MethodType)Ú_apiÚcbook)ÚSubplotSpecé   )ÚSizeÚSubplotDividerÚDivider)ÚAxesÚSimpleAxisArtistc                   óX   ‡ — e Zd Zˆ fd„Zd„ Z ej                  dd¬«      d„ «       Zˆ xZS )ÚCbarAxesBasec                ó2   •— || _         t        ‰| �  |i |¤Ž y ©N)ÚorientationÚsuperÚ__init__)Úselfr   ÚargsÚkwargsÚ	__class__s       €úX/var/www/html/acx/venv/lib/python3.12/site-packages/mpl_toolkits/axes_grid1/axes_grid.pyr   zCbarAxesBase.__init__   s   ø€ Ø&ˆÔÜ‰Ñ˜$Ð) &Ó)ó    c                 óV   —  | j                   j                  |f| | j                  dœ|¤ŽS )N)ÚcaxÚlocation)ÚfigureÚcolorbarr   )r   Úmappabler   s      r   r   zCbarAxesBase.colorbar   s:   € Ø#ˆt�{‰{×#Ñ#ØðEØ¨×)9Ñ)9ñEØ=CñEð 	Er   z3.8z%ax.tick_params and colorbar.set_label)Úalternativec                 ó\   — | j                   | j                     }|j                  ||¬«       y )N©Ú
ticklabelsÚlabel)Úaxisr   Útoggle)r   Úbr&   s      r   Útoggle_labelzCbarAxesBase.toggle_label   s&   € à�y‰y˜×)Ñ)Ñ*ˆØ�‰˜q¨ˆÕ*r   )	Ú__name__Ú
__module__Ú__qualname__r   r   r   Ú
deprecatedr)   Ú__classcell__©r   s   @r   r   r      s1   ø„ ô*òEð €T‡_�_�UÐ(OÔPñ+ó Qô+r   r   zCbar{}c                   ó€   — e Zd ZdZeZ	 	 	 ddddddddœd„Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚGridaq  
    A grid of Axes.

    In Matplotlib, the Axes location (and size) is specified in normalized
    figure coordinates. This may not be ideal for images that needs to be
    displayed with a given aspect ratio; for example, it is difficult to
    display multiple images of a same size with some fixed padding between
    them.  AxesGrid can be used in such case.
    NFTÚL)Ú	share_allÚshare_xÚshare_yÚ
label_modeÚ
axes_classÚaspectc                óú  — |\  | _         | _        |€| j                   | j                  z  }n9d|cxk  r&| j                   | j                  z  k  st        d«      ‚ t        d«      ‚|| _        t	        t
        j                  t        j                  |d«      «      \  | _	        | _
        t        j                  ddg|¬«       || _        |€| j                  }n1t        |t         t"        f«      r|\  }}t%        j&                  |fi |¤Ž}t)        g g |¬«      }t        |t*        t,        f«      rt/        ||fi |¤Ž| _        nOt3        |«      d	k(  rt/        |g|¢­i |¤Ž| _        n,t3        |«      d
k(  rt5        ||fi |¤Ž| _        nt7        d«      ‚| j0                  j9                  «       }t        j:                  | j                   | j                  fdt<        ¬«      }t?        | j                  «      D ]G  }| jA                  |«      \  }}|r|d   x}}n|r|d|f   nd}|	r||df   nd} |||||¬«      |||f<   ŒI |jC                  | j                  dk(  rdnd¬«      jE                  «       | _#        |jH                  jE                  «       | _%        |jE                  «       | _&        | jJ                  d   d   | _'        | jQ                  «        | jF                  D ]  }|jS                  |«       Œ | jU                  |
«       y)aÂ  
        Parameters
        ----------
        fig : `.Figure`
            The parent figure.
        rect : (float, float, float, float), (int, int, int), int, or     `~.SubplotSpec`
            The axes position, as a ``(left, bottom, width, height)`` tuple,
            as a three-digit subplot position code (e.g., ``(1, 2, 1)`` or
            ``121``), or as a `~.SubplotSpec`.
        nrows_ncols : (int, int)
            Number of rows and columns in the grid.
        ngrids : int or None, default: None
            If not None, only the first *ngrids* axes in the grid are created.
        direction : {"row", "column"}, default: "row"
            Whether axes are created in row-major ("row by row") or
            column-major order ("column by column").  This also affects the
            order in which axes are accessed using indexing (``grid[index]``).
        axes_pad : float or (float, float), default: 0.02
            Padding or (horizontal padding, vertical padding) between axes, in
            inches.
        share_all : bool, default: False
            Whether all axes share their x- and y-axis.  Overrides *share_x*
            and *share_y*.
        share_x : bool, default: True
            Whether all axes of a column share their x-axis.
        share_y : bool, default: True
            Whether all axes of a row share their y-axis.
        label_mode : {"L", "1", "all", "keep"}, default: "L"
            Determines which axes will get tick labels:

            - "L": All axes on the left column get vertical tick labels;
              all axes on the bottom row get horizontal tick labels.
            - "1": Only the bottom left axes is labelled.
            - "all": All axes are labelled.
            - "keep": Do not do anything.

        axes_class : subclass of `matplotlib.axes.Axes`, default: None
        aspect : bool, default: False
            Whether the axes aspect ratio follows the aspect ratio of the data
            limits.
        Nr   z7ngrids must be positive and not larger than nrows*ncolsé   ÚcolumnÚrow)Ú	direction)Ú
horizontalÚverticalr8   é   é   zIncorrect rect format)Údtype)r   r   )ÚsharexÚshareyÚCÚF)Úorderéÿÿÿÿ)+Ú_nrowsÚ_ncolsÚ
ValueErrorÚngridsÚmapr	   ÚFixedÚnpÚbroadcast_toÚ_horiz_pad_sizeÚ_vert_pad_sizer   Úcheck_in_listÚ
_directionÚ_defaultAxesClassÚ
isinstanceÚlistÚtupleÚ	functoolsÚpartialÚdictr   r   r
   Ú_dividerÚlenr   Ú	TypeErrorÚget_positionÚfullÚobjectÚrangeÚ_get_col_rowÚravelÚtolistÚaxes_allÚTÚaxes_columnÚaxes_rowÚaxes_llcÚ_init_locatorsÚadd_axesÚset_label_mode)r   ÚfigÚrectÚnrows_ncolsrL   r=   Úaxes_padr3   r4   r5   r6   r7   r8   Úclsr   ÚkwÚ
axes_arrayÚiÚcolr<   rC   rD   Úaxs                          r   r   zGrid.__init__-   sÎ  € ðp $/Ñ ˆŒ�T”[àˆ>Ø—[‘[ 4§;¡;Ñ.‰Fà�vÔ: §¡¨t¯{©{Ñ!:Ò:Ü ØMóOð Oð ;Ü ØMóOð Oð ˆŒä47Ü�J‰JœŸ™¨°!Ó4ó56Ñ1ˆÔ˜dÔ1ô 	×Ñ˜H eÐ,¸	ÕBØ#ˆŒàÐØ×/Ñ/‰JÜ˜
¤T¬5 MÔ2Ø$‰KˆC�Ü"×*Ñ*¨3Ñ9°&Ñ9ˆJä˜R¨"°VÔ<ˆÜ�dœV¤[Ð1Ô2Ü*¨3°Ñ;¸Ñ;ˆD�MÜ�‹Y˜!Š^Ü*¨3Ð<°Ò<¸Ñ<ˆD�MÜ�‹Y˜!Š^Ü# C¨Ñ4°Ñ4ˆD�MäÐ3Ó4Ð4à�}‰}×)Ñ)Ó+ˆä—W‘W˜dŸk™k¨4¯;©;Ð7¸ÄVÔLˆ
Ü�t—{‘{Ó#ò 	9ˆAØ×(Ñ(¨Ó+‰HˆC�ÙØ",¨TÑ"2Ð2�™á/6˜ A s FÒ+¸D�Ù/6˜ C¨ FÒ+¸D�Ù#-Ø�T &°ô$9ˆJ�s˜C�xÒ ð	9ð #×(Ñ(ØŸ™¨EÒ1‘#°sð )ó <ß<B¹F»Hð 	Œà%Ÿ<™<×.Ñ.Ó0ˆÔØ"×)Ñ)Ó+ˆŒØ×(Ñ(¨Ñ+¨BÑ/ˆŒà×ÑÔà—-‘-ò 	ˆBØ�L‰L˜Õð	ð 	×Ñ˜JÕ'r   c           	      ó‚  — | j                   j                  t        j                  d«      | j                  g| j
                  dz
  z  t        j                  d«      gz   «       | j                   j                  t        j                  d«      | j                  g| j                  dz
  z  t        j                  d«      gz   «       t        | j                  «      D ]e  }| j                  |«      \  }}| j                  |   j                  | j                   j                  d|z  d| j                  dz
  |z
  z  ¬«      «       Œg y )Nr   r:   ©ÚnxÚny)r\   Úset_horizontalr	   ÚScaledrQ   rJ   Úset_verticalrR   rI   rb   rL   rc   rf   Úset_axes_locatorÚnew_locator)r   ru   rv   r<   s       r   rk   zGrid._init_locatorsŸ   s  € Ø�‰×$Ñ$Ü�[‰[˜‹^˜T×1Ñ1Ð2°d·k±kÀ!±mÑDÌÏÉÐTUËÐGWÑWô	Yà�‰×"Ñ"Ü�[‰[˜‹^˜T×0Ñ0Ð1°T·[±[À±]ÑCÄtÇ{Á{ÐSTÃ~ÐFVÑVô	Xä�t—{‘{Ó#ò 	WˆAØ×(Ñ(¨Ó+‰HˆC�Ø�M‰M˜!Ñ×-Ñ-Ø—‘×)Ñ)¨Q°©W¸¸d¿k¹kÈA¹oÐPSÑ>SÑ9TÐ)ÓUõWñ	Wr   c                 ó”   — | j                   dk(  rt        || j                  «      \  }}||fS t        || j                  «      \  }}||fS )Nr;   )rT   ÚdivmodrI   rJ   )r   Únrv   r<   s       r   rc   zGrid._get_col_row©   sL   € Ø�?‰?˜hÒ&Ü˜a §¡Ó-‰HˆC�ð �Cˆxˆô ˜a §¡Ó-‰HˆC�à�Cˆxˆr   c                 ó,   — t        | j                  «      S r   )r]   rf   ©r   s    r   Ú__len__zGrid.__len__²   s   € Ü�4—=‘=Ó!Ð!r   c                 ó    — | j                   |   S r   )rf   )r   ru   s     r   Ú__getitem__zGrid.__getitem__µ   s   € Ø�}‰}˜QÑÐr   c                 ó2   — | j                   | j                  fS )zV
        Return the number of rows and columns of the grid as (nrows, ncols).
        )rI   rJ   r…   s    r   Úget_geometryzGrid.get_geometry¸   s   € ð �{‰{˜DŸK™KÐ'Ð'r   c                 óT   — |d   | j                   _        |d   | j                  _        y)z¾
        Set the padding between the axes.

        Parameters
        ----------
        axes_pad : (float, float)
            The padding (horizontal pad, vertical pad) in inches.
        r   r   N©rQ   Ú
fixed_sizerR   )r   rq   s     r   Úset_axes_padzGrid.set_axes_pad¾   s(   € ð +3°1©+ˆ×ÑÔ'Ø)1°!©ˆ×ÑÕ&r   c                 óZ   — | j                   j                  | j                  j                  fS )zœ
        Return the axes padding.

        Returns
        -------
        hpad, vpad
            Padding (horizontal pad, vertical pad) in inches.
        rŒ   r…   s    r   Úget_axes_padzGrid.get_axes_padÊ   s,   € ð ×$Ñ$×/Ñ/Ø×#Ñ#×.Ñ.ð0ð 	0r   c                 ó:   — | j                   j                  |«       y)z%Set the aspect of the SubplotDivider.N)r\   Ú
set_aspect)r   r8   s     r   r’   zGrid.set_aspectÖ   s   € à�‰× Ñ  Õ(r   c                 ó6   — | j                   j                  «       S )z(Return the aspect of the SubplotDivider.)r\   Ú
get_aspectr…   s    r   r”   zGrid.get_aspectÚ   s   € à�}‰}×'Ñ'Ó)Ð)r   c                 ód  — t         j                  d| j                  …d| j                  …f   | j                  dz
  ggdgggk(  \  }}|dk(  r/t        j                  | j                  | j                  fd«      x}}n5|dk(  r|}|}n+|dk(  r||z  x}}n|dk7  rt        j                  d	d
d¬«       yt        | j                  «      D ]é  }t        | j                  «      D ]Ï  }| j                  |   |   }t        |j                  t        «      rIt        |j                  d|j                  d   «      }	t        |j                  d|j                  d   «      }
n|j                  d   }	|j                  d   }
|	j!                  |||f   |||f   ¬«       |
j!                  |||f   |||f   ¬«       ŒÑ Œë y)aÀ  
        Define which axes have tick labels.

        Parameters
        ----------
        mode : {"L", "1", "all", "keep"}
            The label mode:

            - "L": All axes on the left column get vertical tick labels;
              all axes on the bottom row get horizontal tick labels.
            - "1": Only the bottom left axes is labelled.
            - "all": All axes are labelled.
            - "keep": Do not do anything.
        Nr   r   ÚallTr2   Ú1Úkeepz3.7zGrid label_modez©Passing an undefined label_mode is deprecated since %(since)s and will become an error %(removal)s. To silence this warning, pass "keep", which gives the same behaviour.)ÚnameÚmessageÚbottomÚleftr#   )rO   ÚmgridrI   rJ   r`   r   Úwarn_deprecatedrb   ri   rV   r&   r   r   ÚxaxisÚspinesÚyaxisr'   )r   ÚmodeÚis_last_rowÚis_first_colr›   rœ   ru   Újrw   Úbottom_axisÚ	left_axiss              r   rm   zGrid.set_label_modeÞ   s¯  € ô  �H‰H�\�d—k‘k�\ < D§K¡K <Ð/Ñ0°t·{±{ÀQ±Ð6GÐ5HÈAÈ3È%Ð4PÑPñ 	"ˆ�\à�5Š=ÜŸG™G T§[¡[°$·+±+Ð$>ÀÓEÐEˆF‘TØ�SŠ[Ø ˆFØ‰DØ�SŠ[Ø'¨,Ñ6Ð6ˆF‘Tð �vŠ~Ü×$Ñ$ØÐ 1ðFõGð Ü�t—{‘{Ó#ò 
	JˆAÜ˜4Ÿ;™;Ó'ò 	J�Ø—]‘] 1Ñ% aÑ(�Ü˜bŸg™g¤zÔ2Ü"2°2·8±8¸QÀÇ	Á	È(Ñ@SÓ"T�KÜ 0°·±¸1¸b¿i¹iÈÑ>OÓ P‘Ià"$§'¡'¨(Ñ"3�KØ "§¡¨¡�IØ×"Ñ"¨f°Q¸°T©lÀ&ÈÈAÈÁ,Ð"ÔOØ× Ñ ¨D°°A°©J¸dÀ1ÀaÀ4¹jÐ ÕIñ	Jñ
	Jr   c                 ó   — | j                   S r   )r\   r…   s    r   Úget_dividerzGrid.get_divider  s   € Ø�}‰}Ðr   c                 ó:   — | j                   j                  |«       y r   )r\   Úset_locator)r   Úlocators     r   r   zGrid.set_axes_locator  s   € Ø�‰×!Ñ! 'Õ*r   c                 ó6   — | j                   j                  «       S r   )r\   Úget_locatorr…   s    r   Úget_axes_locatorzGrid.get_axes_locator  s   € Ø�}‰}×(Ñ(Ó*Ð*r   ©Nr<   g{®Gáz”?)r*   r+   r,   Ú__doc__r   rU   r   rk   rc   r†   rˆ   rŠ   rŽ   r�   r’   r”   rm   r©   r   r¯   © r   r   r1   r1       s   „ ñð Ðð
 Ø Øðp(ð !ØØØØ Øôp(òdWòò"ò ò(ò
5ò
0ò)ò*ò-Jò^ò+ó+r   r1   c                   óF   ‡ — e Zd ZdZ	 	 	 dddddddddddœ	ˆ fd	„Zd
„ Zˆ xZS )Ú	ImageGridaR  
    A grid of Axes for Image display.

    This class is a specialization of `~.axes_grid1.axes_grid.Grid` for displaying a
    grid of images.  In particular, it forces all axes in a column to share their x-axis
    and all axes in a row to share their y-axis.  It further provides helpers to add
    colorbars to some or all axes.
    NFTr2   Úrightz5%)	r3   r8   r6   Ú	cbar_modeÚcbar_locationÚcbar_padÚ	cbar_sizeÚcbar_set_caxr7   c       	         óÚ  •— t        j                  g d¢|
¬«       t        j                  g d¢|¬«       |
| _        || _        || _        || _        t        ‰| �  |||||||dd||	|¬«       | j                  D ]  }|j                  |«       Œ |rÝ| j                  dk(  r&| j                  D ]  }| j                  d   |_        Œ y| j                  d	k(  rit        | j                  «      D ]P  \  }}| j                  |«      \  }}| j                  d
v r| j                  |   |_        Œ=| j                  |   |_        ŒR yt        | j                  | j                  «      D ]  \  }}||_        Œ yy)aâ	  
        Parameters
        ----------
        fig : `.Figure`
            The parent figure.
        rect : (float, float, float, float) or int
            The axes position, as a ``(left, bottom, width, height)`` tuple or
            as a three-digit subplot position code (e.g., "121").
        nrows_ncols : (int, int)
            Number of rows and columns in the grid.
        ngrids : int or None, default: None
            If not None, only the first *ngrids* axes in the grid are created.
        direction : {"row", "column"}, default: "row"
            Whether axes are created in row-major ("row by row") or
            column-major order ("column by column").  This also affects the
            order in which axes are accessed using indexing (``grid[index]``).
        axes_pad : float or (float, float), default: 0.02in
            Padding or (horizontal padding, vertical padding) between axes, in
            inches.
        share_all : bool, default: False
            Whether all axes share their x- and y-axis.  Note that in any case,
            all axes in a column share their x-axis and all axes in a row share
            their y-axis.
        aspect : bool, default: True
            Whether the axes aspect ratio follows the aspect ratio of the data
            limits.
        label_mode : {"L", "1", "all"}, default: "L"
            Determines which axes will get tick labels:

            - "L": All axes on the left column get vertical tick labels;
              all axes on the bottom row get horizontal tick labels.
            - "1": Only the bottom left axes is labelled.
            - "all": all axes are labelled.

        cbar_mode : {"each", "single", "edge", None}, default: None
            Whether to create a colorbar for "each" axes, a "single" colorbar
            for the entire grid, colorbars only for axes on the "edge"
            determined by *cbar_location*, or no colorbars.  The colorbars are
            stored in the :attr:`cbar_axes` attribute.
        cbar_location : {"left", "right", "bottom", "top"}, default: "right"
        cbar_pad : float, default: None
            Padding between the image axes and the colorbar axes.
        cbar_size : size specification (see `.Size.from_any`), default: "5%"
            Colorbar size.
        cbar_set_cax : bool, default: True
            If True, each axes in the grid has a *cax* attribute that is bound
            to associated *cbar_axes*.
        axes_class : subclass of `matplotlib.axes.Axes`, default: None
        )ÚeachÚsingleÚedgeN)r¶   )rœ   rµ   r›   Útop)r·   T)r=   rq   r3   r4   r5   r8   r6   r7   r½   r   r¾   ©rœ   rµ   N)r   rS   Ú_colorbar_modeÚ_colorbar_locationÚ_colorbar_padÚ_colorbar_sizer   r   Ú	cbar_axesrl   rf   r   Ú	enumeraterc   Úzip)r   rn   ro   rp   rL   r=   rq   r3   r8   r6   r¶   r·   r¸   r¹   rº   r7   rw   Úindexrv   r<   r   r   s                        €r   r   zImageGrid.__init__!  sr  ø€ ôD 	×ÑÒ;Ø%.õ	0ä×ÑÒ=Ø)6õ	8à'ˆÔØ"/ˆÔØ%ˆÔØ'ˆÔô 	‰ÑØ��{ FØ¨(Ø¨°tÀFØ!¨jð	 	ô 	:ð —.‘.ò 	ˆBØ�L‰L˜Õð	ñ Ø×"Ñ" hÒ.ØŸ-™-ò /�BØ!Ÿ^™^¨AÑ.�B•Fñ/à×$Ñ$¨Ò.Ü!*¨4¯=©=Ó!9ò 5‘I�E˜2Ø#×0Ñ0°Ó7‘H�C˜Ø×.Ñ.Ð2CÑCØ!%§¡°Ñ!4˜�à!%§¡°Ñ!4˜�ñ5ô  # 4§=¡=°$·.±.ÓAò !‘G�B˜Ø �B•Fñ!ð r   c                 óÆ  — | j                   €E| j                  dv r| j                  j                  | _         n| j                  j                  | _         t        | j                  «      D �cg c]Y  } t        | j                  «      | j                  d   j                  | j                  j                  «       | j                  ¬«      ‘Œ[ c}| _        | j                  }| j                  }g }g }g }g }|dk(  �rÔ|dv �rÏ|dk(  r©| j                  t!        j"                  | j$                  «      z  }|j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       | j                  j-                  ddd¬«      }	n­|d	k(  r¨| j.                  t!        j0                  | j$                  «      z  }|j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       | j                  j-                  ddd¬
«      }	t        | j                  «      D ]   }
| j                  |
   j3                  d«       Œ" | j                  d   j5                  	«       | j                  d   j3                  d«       t7        | j8                  d   «      D �]Ó  \  }}|r|j'                  | j                  «       |r&t!        j"                  |d| j                  d   ¬«      }n2t!        j"                  | j                  d   d| j                  d   ¬«      }|dk(  r‡|dk(  s
|dk(  r}|dk(  rx|j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  |«       |dk(  s�Œ<|dk(  s|dk(  s�ŒH|| j.                  dz
  k(  s�Œ\|j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       �ŒÖ g }g }t7        | j<                  d   d d d…   «      D �]Ó  \  }}|r|j'                  | j                  «       |r&t!        j0                  |d| j                  d   ¬«      }n2t!        j0                  | j                  d   d| j                  d   ¬«      }|d	k(  r‡|dk(  s
|dk(  r}|dk(  rx|j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  |«       |dk(  s�Œ<|dk(  s|dk(  s�ŒH|| j                  dz
  k(  s�Œ\|j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       �ŒÖ t        | j                  «      D �]Ü  }
| j?                  |
«      \  }}| j                  j-                  ||   || j                  dz
  |z
     ¬«      }	| j                  |
   j5                  |	«       |dk(  rŽ|dv r4| j                  j-                  ||   || j                  dz
  |z
     ¬«      }	n7|dv r3| j                  j-                  ||   || j                  dz
  |z
     ¬«      }	| j                  |
   j5                  |	«       Œü|dk(  s�Œ|dk(  r|dk(  s|dk(  re|| j.                  dz
  k(  rS| j                  j-                  |d   || j                  dz
  |z
     ¬«      }	| j                  |   j5                  |	«       �Œw|d	k(  r|| j                  dz
  k(  s|dk(  s�Œ•|dk(  s�Œœ| j                  j-                  ||   |d   ¬«      }	| j                  |   j5                  |	«       �Œß |dk(  �rÖ|dk(  r©| j                  t!        j"                  | j$                  «      z  }|j'                  t!        j(                  | j                   |«      «       |j'                  t!        j(                  | j*                  |«      «       | j                  j-                  ddd¬«      }	n­|dk(  r¨| j.                  t!        j0                  | j$                  «      z  }|j'                  t!        j(                  | j                   |«      «       |j'                  t!        j(                  | j*                  |«      «       | j                  j-                  ddd¬
«      }	|dv �r›t        | j                  «      D ]   }
| j                  |
   j3                  d«       Œ" | j                  d   j5                  	«       | j                  d   j3                  d«       �n%|dk(  r9t        | j                  «      D ]   }
| j                  |
   j3                  d«       Œ" nç|dk(  rˆ|dv r| j                  }n| j.                  }t        |«      D ]   }
| j                  |
   j3                  d«       Œ" t        
dz   | j                  «      D ]   }| j                  |   j3                  d«       Œ" nZt        | j                  «      D ]B  }
| j                  |
   j3                  d«       | j                  |
   jA                  g d¢d¬«       ŒD | j                  jC                  |«       | j                  jE                  |«       y c c}w )NrÀ   r   )r   r½   )rœ   r›   rœ   rH   )rz   r{   Úny1r›   )rz   Únx1r{   FTÚaxes)r8   Úref_axr¼   r¾   rµ   r   r¿   ry   )rµ   rœ   )r¿   r›   éþÿÿÿ)rµ   r¿   )ç      ð?rÏ   çü©ñÒMbP?rÐ   Úactive)Úwhich)#rÃ   rÂ   rQ   r�   rR   rb   rL   Ú_cbaraxes_class_factoryrU   rf   r   r\   r_   rÅ   rÁ   rI   r	   ÚAxesXrj   ÚappendÚfrom_anyrÄ   r€   rJ   ÚAxesYÚset_visibler   rÆ   ri   r]   rh   rc   Úset_positionr|   r~   )r   Ú_Úcb_modeÚcb_locationÚhÚvÚh_ax_posÚh_cb_posÚszr¬   ru   rv   rw   Úv_ax_posÚv_cb_posr<   Úcountr¥   s                     r   rk   zImageGrid._init_locators…  sÂ	  € ð ×ÑÐ%à×&Ñ&Ð*;Ñ;Ø%)×%9Ñ%9×%DÑ%D�Õ"à%)×%8Ñ%8×%CÑ%C�Ô"ô
 ˜4Ÿ;™;Ó'ö	)ð ð <Ô# D×$:Ñ$:Ó;Ø—‘˜aÑ ×'Ñ'¨¯©×)CÑ)CÓ)EØ ×3Ñ3ö5ò)ˆŒð ×%Ñ%ˆØ×-Ñ-ˆàˆØˆàˆØˆØ�hÓ ;Ð2DÒ#DØ˜fÒ$Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?ØŸ-™-×3Ñ3°q¸QÀBÐ3ÓG‘Ø Ò(Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?ØŸ-™-×3Ñ3°q¸bÀQÐ3ÓG�Ü˜4Ÿ;™;Ó'ò 5�Ø—‘˜qÑ!×-Ñ-¨eÕ4ð5à�N‰N˜1Ñ×.Ñ.¨wÔ7Ø�N‰N˜1Ñ×)Ñ)¨$Ô/ä  §¡¨qÑ!1Ó2ó 	A‰GˆC�ÙØ—‘˜×-Ñ-Ô.áÜ—Z‘Z ¨6¸$¿-¹-ÈÑ:JÔK‘ä—Z‘Z §¡¨aÑ 0Ø'-°d·m±mÀAÑ6FôH�ð ˜vÒ%Ø  FÒ*Ø$¨Ò.°3¸!²8Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?à�O‰OœC ›FÔ#Ø�H‰H�RŒLà˜wÔ&Ø  FÒ*Ø$¨Ô.°3¸$¿+¹+È¹/Ô3IØ—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ö@ð3	Að6 ˆØˆÜ  ×!1Ñ!1°!Ñ!4±T°r°TÑ!:Ó;ó 	A‰GˆC�ÙØ—‘˜×,Ñ,Ô-áÜ—Z‘Z ¨6¸$¿-¹-ÈÑ:JÔK‘ä—Z‘Z §¡¨aÑ 0Ø'-°d·m±mÀAÑ6FôH�ð ˜xÒ'Ø  FÒ*Ø$¨Ò.°3¸!²8Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?à�O‰OœC ›FÔ#Ø�H‰H�RŒLà˜uÔ$Ø  FÒ*Ø$¨Ô.°3¸$¿+¹+È¹/Ô3IØ—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ö@ð3	Aô6 �t—{‘{Ó#ó 	BˆAØ×(Ñ(¨Ó+‰HˆC�Ø—m‘m×/Ñ/°8¸C±=Ø3;¸D¿K¹KÈ¹MÈ#Ñ<MÑ3Nð 0ó PˆGà�M‰M˜!Ñ×-Ñ-¨gÔ6à˜&Ò ØÐ"3Ñ3Ø"Ÿm™m×7Ñ7Ø# C™=¨X°d·k±kÀA±oÈÑ6KÑ-Lð 8ó N‘Gð !Ð$5Ñ5Ø"Ÿm™m×7Ñ7Ø# C™=¨X°d·k±kÀA±oÈÑ6KÑ-Lð 8ó N�Gð —‘˜qÑ!×2Ñ2°7Õ;Ø˜FÔ"Ø 6Ò)¨c°QªhØ&¨'Ò1°c¸T¿[¹[È1¹_Ò6LØ"Ÿm™m×7Ñ7Ø# A™;¨8°D·K±KÀ!±OÀcÑ4IÑ+Jð 8ó L�Gà—N‘N 3Ñ'×8Ñ8¸ÖAØ! XÒ-°#¸¿¹Àq¹Ò2HØ$¨Ô-°#¸´(Ø"Ÿm™m×7Ñ7¸8ÀC¹=Ø;CÀA¹;ð 8ó H�Gà—N‘N 3Ñ'×8Ñ8¸ÖAð5	Bð8 �hÓØ˜gÒ%Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@ØŸ-™-×3Ñ3°r¸aÀRÐ3ÓH‘Ø Ò%Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@ØŸ-™-×3Ñ3°q¸bÀRÐ3ÓH�ØÐ.Ò.Ü˜tŸ{™{Ó+ò 9�AØ—N‘N 1Ñ%×1Ñ1°%Õ8ð9à—‘˜qÑ!×2Ñ2°7Ô;Ø—‘˜qÑ!×-Ñ-¨dÖ3Ø˜ÒÜ˜4Ÿ;™;Ó'ò 4�Ø—‘˜qÑ!×-Ñ-¨dÕ3ñ4à˜ÒØÐ/Ñ/ØŸ™‘àŸ™�Ü˜5“\ò 4�Ø—‘˜qÑ!×-Ñ-¨dÕ3ð4ä˜1˜q™5 $§+¡+Ó.ò 5�Ø—‘˜qÑ!×-Ñ-¨eÕ4ñ5ô ˜4Ÿ;™;Ó'ò ?�Ø—‘˜qÑ!×-Ñ-¨eÔ4Ø—‘˜qÑ!×.Ñ.Ò/EØ5=ð /õ ?ð?ð
 	�‰×$Ñ$ QÔ'Ø�‰×"Ñ" 1Õ%ùòk)s   Á)Aor°   )r*   r+   r,   r±   r   rk   r.   r/   s   @r   r´   r´     sC   ø„ ñð Ø Øðb!ð !ØØØØ&ØØØ"Ø öb!öH^&r   r´   )Únumbersr   rY   Útypesr   ÚnumpyrO   Ú
matplotlibr   r   Úmatplotlib.gridspecr   Úaxes_dividerr	   r
   r   Úmpl_axesr   r   r   Ú_make_class_factoryrÓ   r1   r´   ÚAxesGridr²   r   r   ú<module>rî      sd   ðÝ Û Ý ã ç "Ý +ç 7Ñ 7ß ,÷+ñ +ð 4˜%×3Ñ3°LÀ(ÓKÐ ÷t+ñ t+ônL&�ô L&ð^ �r   