§
    �Øj}  ã                   ó  — d dl mZ d dlZd dlZd dlZd dlmZmZm	Z
mZmZmZmZmZ ddlmZmZ dd„Zd„ Ze G d	„ d
¦  «        ¦   «         Z G d„ dej        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )Ú	dataclassN)Ú_apiÚartistÚlinesÚaxisÚpatchesÚtextÚ
transformsÚcolorsé   )Úart3dÚproj3d©TTTc                 ól   — t          j        | ¦  «        } | |t          j        d| |z
  ¦  «        z  |z  z   S )zg
    For each coordinate where *axmask* is True, move *coord* away from
    *centers* by *deltas*.
    r   )ÚnpÚasarrayÚcopysign)ÚcoordÚcentersÚdeltasÚaxmasks       ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axis3d.pyÚ_move_from_centerr      s8   € õ
 ŒJ�uÑÔ€EØ�6�BœK¨¨5°7©?Ñ;Ô;Ñ;¸fÑDÑDÐDó    c                 ó®  — | j                              |¦  «         | j                             |¦  «         | j                             d¦  «         | j                             d¦  «         | j                             d¦  «         | j                             d¦  «         | j                             ||¦  «         | j	                             dgdg¦  «         dS )z.Update tick line and label position and style.TFú-Ú r   N)
Úlabel1Úset_positionÚlabel2Ú	tick1lineÚset_visibleÚ	tick2lineÚset_linestyleÚ
set_markerÚset_dataÚgridline)ÚtickÚtickxsÚtickysÚlabelposs       r   Ú_tick_update_positionr,      sÂ   € ð 	„K×Ò˜XÑ&Ô&Ð&Ø„K×Ò˜XÑ&Ô&Ð&Ø„N×Ò˜tÑ$Ô$Ð$Ø„N×Ò˜uÑ%Ô%Ð%Ø„N× Ò  Ñ%Ô%Ð%Ø„N×Ò˜bÑ!Ô!Ð!Ø„N×Ò˜F FÑ+Ô+Ð+Ø„M×Ò˜A˜3  Ñ$Ô$Ð$Ð$Ð$r   c                   óp   — e Zd ZU dZdZej        ed<   dZe	ed<   dZ
ej        ed<   dZej        ed<   d„ ZdS )Ú_UpdatedArtistsz¾
    Class to supply artists that have been updated ready to draw.

    We track the types of artists individually, because they need
    different handling in the tightbox calculation.
    NÚlineÚticksÚoffset_textÚlabelc              #   ó˜   K  — | j         �	| j         V — | j        �| j        D ]}|V — Œ| j        �	| j        V — | j        �| j        V — dS dS )z:Yield all updated artists in the correct order for drawingN)r/   r0   r1   r2   )Úselfr(   s     r   Ú__iter__z_UpdatedArtists.__iter__4   sy   è è € àŒ9Ð Ø”)ˆOˆOˆOØŒ:Ð!Øœ
ð ð �Ø�
�
�
�
ØÔÐ'ØÔ"Ð"Ð"Ð"ØŒ:Ð!Ø”*ÐÐÐÐÐð "Ð!r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r/   ÚmlinesÚLine2DÚ__annotations__r0   Úlistr1   ÚmtextÚTextr2   r5   © r   r   r.   r.   '   sw   € € € € € € ðð ð €Dˆ&Œ-ÐÐÑØ€Eˆ4ÐÐÑØ"€K�”Ð"Ð"Ñ"Ø€Eˆ5Œ:ÐÐÑð
ð 
ð 
ð 
ð 
r   r.   c                   ó�  ‡ — e Zd ZdZdZddddœddddœddd	dœd
œZddœd„Zddœd„Zˆ fd„Z e	j
        e¦  «        e_          ej        dd¬¦  «         ed„ ¦  «        ¦  «        Zd„ Z ej        dd¬¦  «        d„ ¦   «         Zd7ˆ fd„	Zd7ˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd7d„Zd„ Zd„ Zd„ Zd „ Zd7d!„Zd7d"„Zd#„ Zd$„ Z d%„ Z!d&„ Z"d'„ Z#d(„ Z$d)„ Z%d*„ Z&e'j(        d+„ ¦   «         Z)e'j(        d,„ ¦   «         Z*d7d-d.œd/„Z+  ej        dd0d¬1¦  «         ed2„ d3„ ¦  «        ¦  «        Z,  ej        dd4d¬1¦  «         ed5„ d6„ ¦  «        ¦  «        Z-ˆ xZ.S )8ÚAxiszAn Axis class for the 3D plots.))r   é   é   é   )r   é   é   é   )r   r   rH   rE   )rC   rF   rG   rD   )r   r   rF   rC   )rE   rH   rG   rD   r   r   )r   r   rF   )ÚiÚtickdirÚjuggled)r   r   rF   rF   )r   rF   r   )ÚxÚyÚzN)Úrotate_labelc                ó   — t          ¦   «         S ©N©Úlocals)r4   ÚadirÚv_intervalxÚd_intervalxÚaxesrO   ÚargsÚkwargss           r   Ú	_old_initzAxis._old_initQ   s   € å‰xŒxˆr   c                ó   — t          ¦   «         S rQ   rR   )r4   rW   rO   rY   s       r   Ú	_new_initzAxis._new_initU   s   € Ý‰xŒxˆr   c           	      ó(  •— t          j        | j        | j        gg|¢R i |¤Ž}d|v r|t          j        ddt          j        t          | ¦  «        j        ¦  «        › �d¬¦  «         |d         | j	        k    r-t          dt          | ¦  «        j        › d|d         ›�¦  «        ‚|d         }|d	         }|                     d
d¦  «        }|d         }| j	        }d| _        d| _        | j        |                              ¦   «         | _        | j                             ddddœt&          j        d|› d�         dddœdœ¦  «         t&          j        d         rj| j                             dddœddddœdœ¦  «         | j        d                               d!t&          j        d"         t&          j        d"         d#œi¦  «         nå| j                             t&          j        d$         t&          j        d%         dœt&          j        d&         t&          j        d'         t&          j        d(         dœdœ¦  «         | j        d                               d!|d)v rt&          j        d*         nt&          j        d+         |d)v rt&          j        d,         nt&          j        d-         d#œi¦  «          t+          ¦   «         j        |g|¢R i |¤Ž d.|v r | j        |d.         Ž  d/|v r | j        |d/         Ž  |                      |¦  «         |                      ¦   «          d S )0NrT   ú3.6zUThe signature of 3D Axis constructors has changed in %(since)s; the new signature is T)ÚmessageÚpendingzCannot instantiate z with adir=rW   rO   rX   r@   rY   ÚdefaultÚcenterÚanchor)ÚvaÚhaÚrotation_modezaxes3d.zaxis.panecolorgš™™™™™É?gš™™™™™¹?)Úinward_factorÚoutward_factor)r2   Úcolorr(   z_internal.classic_modeg      è?)r   r   r   r   )Ú	linewidthri   )çÍÌÌÌÌÌì?rk   rk   r   g      ð?r   )ri   rj   Ú	linestyle)ÚaxislineÚgridr(   rj   zlines.linewidth)TFzaxes.linewidthzaxes.edgecolorz
grid.colorzgrid.linewidthzgrid.linestyleÚxzzxtick.major.widthzytick.major.widthzxtick.minor.widthzytick.minor.widthrV   rU   )r   Úselect_matching_signaturerZ   r\   Úwarn_deprecatedÚinspectÚ	signatureÚtypeÚ__init__Ú	axis_nameÚ
ValueErrorr6   ÚgetÚ_label_positionÚ_tick_positionÚ_AXINFOÚcopyÚ_axinfoÚupdateÚmplÚrcParamsÚsuperÚset_data_intervalÚset_view_intervalÚset_rotate_labelÚ_init3d)r4   rX   rY   ÚparamsrW   rO   ÚnameÚ	__class__s          €r   ru   zAxis.__init__X   sÀ  ø€ ÝÔ/ØŒ^˜Tœ^Ð,ð?Ø/3ð?ð ?ð ?Ø7=ð?ð ?ˆà�VÐÐÝÔ Øð  <åÔ$¥T¨$¡Z¤ZÔ%8Ñ9Ô9ð <ð  <àEIðKñ Kô Kð Kð �fŒ~ ¤Ò/Ð/Ý ð "Aµt¸D±z´zÔ7Jð "Að "AØ.4°V¬nð"Að "Añ Bô Bð Bà�fŒ~ˆØ˜nÔ-ˆØ�zŠz˜& "Ñ%Ô%ˆØ˜Ô!ˆàŒ~ˆà(ˆÔØ'ˆÔð ”| DÔ)×.Ò.Ñ0Ô0ˆŒàŒ×ÒØ$¨HØ'/ð1ð 1å”\Ð"@¨DÐ"@Ð"@Ð"@ÔAà!$Ø"%ðð ð	
ð 
ñ 	ô 	ð 	õ Œ<Ð0Ô1ð $	ØŒL×ÒØ*.¸ÐFÐFà/Ø!$Ø!$ðð ð!ð !ñ ô ð ð ŒL˜Ô ×'Ò'ØÝœ,Ð'8Ô9Ýœ<Ð(9Ô:ðð ð)ñ ô ð ð ð ŒL×Òå!$¤Ð.>Ô!?Ý œ\Ð*:Ô;ðð õ
 !œ\¨,Ô7Ý!$¤Ð.>Ô!?Ý!$¤Ð.>Ô!?ðð ð
!ð 
!ñ 
ô 
ð 
ð ŒL˜Ô ×'Ò'Øà=AÀT¸\¸\�œÐ%8Ô9Ð9Ý œ\Ð*=Ô>à=AÀT¸\¸\�œÐ%8Ô9Ð9Ý œ\Ð*=Ô>ðð ð	)ñ 	ô 	ð 	ð 	�‰ŒÔ˜Ð/ Ð/Ð/Ð/¨Ð/Ð/Ð/ð ˜FÐ"Ð"Ø"ˆDÔ" F¨=Ô$9Ð:Ð:Ø˜FÐ"Ð"Ø"ˆDÔ" F¨=Ô$9Ð:Ð:Ø×Ò˜lÑ+Ô+Ð+Ø�Š‰Œˆˆˆr   r^   T)r`   c                 ó   — | j         S rQ   )rv   ©r4   s    r   ú<lambda>zAxis.<lambda>­   s   € ˜dœn€ r   c                 óÈ  — t          j        dd| j        d         d         | j        d         d         d¬¦  «        | _        t	          j        ddgddggd	¬
¦  «        | _        |                      | j        d         ¦  «         | j         	                    | j        ¦  «         | j         	                    | j        ¦  «         t          j        g ¦  «        | _        | j         	                    | j        ¦  «         | j         	                    | j        ¦  «         | j         	                    | j        ¦  «         | j        j        | j        _        | j        j        | j        _        d S )N)r   r   rm   rj   ri   T)ÚxdataÚydatarj   ri   Úantialiasedr   r   F)Úclosed)r:   r;   r}   r/   ÚmpatchesÚPolygonÚpaneÚset_pane_colorrW   Ú_set_artist_propsr   ÚLine3DCollectionÚ	gridlinesr2   Ú
offsetTextÚ	transDataÚ
_transformrŠ   s    r   r…   zAxis._init3d¯   s/  € Ý”MØ Ø”l :Ô.¨{Ô;Ø”,˜zÔ*¨7Ô3Øð	ñ ô ˆŒ	õ Ô$ q¨! f¨q°!¨fÐ%5¸eÐDÑDÔDˆŒ	Ø×Ò˜DœL¨Ô1Ñ2Ô2Ð2àŒ	×#Ò# D¤IÑ.Ô.Ð.ØŒ	×#Ò# D¤IÑ.Ô.Ð.ÝÔ/°Ñ3Ô3ˆŒØŒ	×#Ò# D¤NÑ3Ô3Ð3ØŒ	×#Ò# D¤JÑ/Ô/Ð/ØŒ	×#Ò# D¤OÑ4Ô4Ð4à $¤	Ô 3ˆŒ
ÔØ%)¤YÔ%8ˆŒÔ"Ð"Ð"r   c                 ó.   — |                       ¦   «          d S rQ   )r…   rŠ   s    r   Úinit3dzAxis.init3dÄ   s   € à�Š‰Œˆˆˆr   c                 óØ   •— t          ¦   «                              |¦  «        }|D ]D}|j        |j        |j        |j        |j        fD ]!}|                     | j        j	        ¦  «         Œ"ŒE|S rQ   )
r�   Úget_major_ticksr!   r#   r'   r   r    Úset_transformrW   r™   ©r4   Únumticksr0   ÚtÚobjrˆ   s        €r   rž   zAxis.get_major_ticksÈ   óx   ø€ Ý‘”×'Ò'¨Ñ1Ô1ˆØð 	7ð 	7ˆAà”K ¤¨a¬j¸!¼(ÀAÄHðNð 7ð 7�à×!Ò! $¤)Ô"5Ñ6Ô6Ð6Ð6ð7ð ˆr   c                 óØ   •— t          ¦   «                              |¦  «        }|D ]D}|j        |j        |j        |j        |j        fD ]!}|                     | j        j	        ¦  «         Œ"ŒE|S rQ   )
r�   Úget_minor_ticksr!   r#   r'   r   r    rŸ   rW   r™   r    s        €r   r¦   zAxis.get_minor_ticksÐ   r¤   r   c                 óD   — t          j        g d¢|¬¦  «         || _        dS )zÜ
        Set the ticks position.

        Parameters
        ----------
        position : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the bolded axis lines, ticks, and tick labels.
        ©ÚlowerÚupperÚbothra   Únone©ÚpositionN)r   Úcheck_in_listrz   ©r4   r®   s     r   Úset_ticks_positionzAxis.set_ticks_positionØ   s8   € õ 	ÔÐHÐHÐHØ$,ð	.ñ 	.ô 	.ð 	.à&ˆÔÐÐr   c                 ó   — | j         S )zÑ
        Get the ticks position.

        Returns
        -------
        str : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the bolded axis lines, ticks, and tick labels.
        )rz   rŠ   s    r   Úget_ticks_positionzAxis.get_ticks_positionå   s   € ð Ô"Ð"r   c                 óD   — t          j        g d¢|¬¦  «         || _        dS )z½
        Set the label position.

        Parameters
        ----------
        position : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the axis label.
        r¨   r­   N)r   r¯   ry   r°   s     r   Úset_label_positionzAxis.set_label_positionð   s8   € õ 	ÔÐHÐHÐHØ$,ð	.ñ 	.ô 	.ð 	.à'ˆÔÐÐr   c                 ó   — | j         S )z²
        Get the label position.

        Returns
        -------
        str : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the axis label.
        )ry   rŠ   s    r   Úget_label_positionzAxis.get_label_positioný   s   € ð Ô#Ð#r   c                 óú   — t          j        ||¦  «        }|| j        d<   | j                             |¦  «         | j                             |¦  «         | j                             |d         ¦  «         d| _        dS )zî
        Set pane color.

        Parameters
        ----------
        color : :mpltype:`color`
            Color for axis pane.
        alpha : float, optional
            Alpha value for axis pane. If None, base it on *color*.
        ri   éÿÿÿÿTN)ÚmcolorsÚto_rgbar}   r“   Úset_edgecolorÚset_facecolorÚ	set_alphaÚstale)r4   ri   Úalphas      r   r”   zAxis.set_pane_color  sr   € õ ”  uÑ-Ô-ˆØ %ˆŒ�WÑØŒ	×Ò Ñ&Ô&Ð&ØŒ	×Ò Ñ&Ô&Ð&ØŒ	×Ò˜E "œIÑ&Ô&Ð&ØˆŒ
ˆ
ˆ
r   c                 ó"   — || _         d| _        dS )z‘
        Whether to rotate the axis label: True, False or None.
        If set to None the label will be rotated if longer than 4 chars.
        TN)Ú_rotate_labelr¿   )r4   Úvals     r   r„   zAxis.set_rotate_label  s   € ð
 !ˆÔØˆŒ
ˆ
ˆ
r   c                 óD   — | j         �| j         S t          |¦  «        dk    S )NrE   )rÂ   Úlen)r4   r	   s     r   Úget_rotate_labelzAxis.get_rotate_label"  s$   € ØÔÐ)ØÔ%Ð%å�t‘9”9˜q’=Ð r   c                 ó  — | j                              ¦   «         \  }}}}}}t          j        t	          ||¦  «        t	          ||¦  «        t	          ||¦  «        g¦  «        }t          j        t          ||¦  «        t          ||¦  «        t          ||¦  «        g¦  «        }g | j                              ¦   «         ¢| j                              ¦   «         ¢| j                              ¦   «         ¢R }	| j          	                    |	¦  «        }
t          j
        d¦  «        }t          j
        d¦  «        }t          d¦  «        D ]_}t          j        |
| j        d|z           df         ¦  «        ||<   t          j        |
| j        d|z  dz            df         ¦  «        ||<   Œ`||k     }t          j        ||z
  ¦  «        t          j        t           ¦  «        j        k    }t          j        |¦  «        dk    rŒt          j        | ¦  «        d         d         }|dk    rt          j        dd|d         g¦  «        }nG|dk    rt          j        d|d         dg¦  «        }n#|dk    rt          j        |d         ddg¦  «        }|||
|fS )NrC   rF   r   r   TF)rW   Ú_get_scaled_limitsr   ÚarrayÚminÚmaxÚ
get_xboundÚ
get_yboundÚ
get_zboundÚ_transformed_cubeÚzerosÚrangeÚmeanÚ_PLANESÚabsÚfinfoÚfloatÚepsÚsumÚwhere)r4   ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxÚminsÚmaxsÚboundsÚbounds_projÚmeans_z0Úmeans_z1rI   ÚhighsÚequalsÚverticals                    r   Ú_get_coord_infozAxis._get_coord_info(  sG  € à-1¬Y×-IÒ-IÑ-KÔ-KÑ*ˆˆd�D˜$  dõ Œx�˜T 4™œ­#¨d°D©/¬/½3¸tÀT¹?¼?ÐKÑLÔLˆÝŒx�˜T 4™œ­#¨d°D©/¬/½3¸tÀT¹?¼?ÐKÑLÔLˆð+�4”9×'Ò'Ñ)Ô)ð +Ø”9×'Ò'Ñ)Ô)ð+à”9×'Ò'Ñ)Ô)ð+ð +ˆð ”i×1Ò1°&Ñ9Ô9ˆõ ”8˜A‘;”;ˆÝ”8˜A‘;”;ˆÝ�q‘”ð 	Kð 	KˆAÝœ' +¨d¬l¸1¸q¹5Ô.AÀ1Ð.DÔ"EÑFÔFˆH�Q‰KÝœ' +¨d¬l¸1¸q¹5À1¹9Ô.EÀqÐ.HÔ"IÑJÔJˆH�Q‰KˆKØ˜8Ò#ˆõ ”˜ 8Ñ+Ñ,Ô,µ´½±´Ô0CÒCˆÝŒ6�&‰>Œ>˜QÒÐÝ”x  Ñ(Ô(¨Ô+¨AÔ.ˆHØ˜1Š}ˆ}Ýœ $¨¨e°A¬hÐ!7Ñ8Ô8��Ø˜Q’�Ýœ $¨¨a¬°%Ð!8Ñ9Ô9��Ø˜Q’�Ýœ %¨¤(¨E°5Ð!9Ñ:Ô:�à�T˜;¨Ð-Ð-r   c                 ó.   — d||z   z  }d}||z
  |z  }||fS )Nç      à?g{®Gáz´?r@   )r4   rá   rà   r   Úscaler   s         r   Ú_calc_centers_deltaszAxis._calc_centers_deltasN  s/   € Ø˜ ™Ñ%ˆð
 ˆØ˜‘+ Ñ&ˆØ˜ˆÐr   c                 óp  — ||g}|ddd…         }|||g|||g|||gg}|| j         j                 | j        d                  }| j        d         }|d                              ¦   «         }|dk    r*|d         |d                  |d         |d                  k     s0|dk    rH|d         |d                  |d         |d                  k    r|d         |d                  ||d         <   n|d         |d                  ||d         <   |                     ¦   «         }	|d         |d                  |	|d         <   ||	fS )	z3Get the edge points for the black bolded axis line.Nr¹   rI   rK   r   r©   r   rª   )rW   Ú_vertical_axisr}   r|   )
r4   ÚminmaxÚmaxminr®   ÚmbÚmb_revÚmmrK   Úedge_point_0Úedge_point_1s
             r   Ú_get_axis_line_edge_pointszAxis._get_axis_line_edge_pointsX  sC  € ð
 �fÐˆØ�D�D�b�D”ˆØ�6˜6Ð" V¨V°RÐ$8¸2¸rÀ2¸,ÐGˆØ�”	Ô(Ô)¨$¬,°sÔ*;Ô<ˆà”,˜yÔ)ˆØ˜!”u—z’z‘|”|ˆà˜Ò Ð  R¨¤U¨7°2¬;Ô%7¸"¸Q¼%ÀÈÄÔ:LÒ%LÐ%LØ˜WÒ$Ð$¨¨A¬¨w°r¬{Ô);¸bÀ¼eÀGÈBÄKÔ>PÒ)PÐ)PØ(*¨1¬¨g°b¬kÔ(:ˆL˜ œÑ%Ð%à')¨!¤u¨W°Q¬ZÔ'8ˆL˜ œÑ$à#×(Ò(Ñ*Ô*ˆØ#% a¤5¨°¬Ô#4ˆ�W˜Q”ZÑ à˜\Ð)Ð)r   c                 óÞ  — g }g }g }|dv r#|                       ||¦  «        \  }}|g}|g}dg}n¼|                       ||d¬¦  «        \  }	}
|                       ||d¬¦  «        \  }}|dv r?|                     |	¦  «         |                     |
¦  «         |                     d¦  «         |dv r?|                     |¦  «         |                     |¦  «         |                     d¦  «         |||fS )N)Nra   ra   r©   r­   rª   )r©   r«   )rª   r«   )r÷   Úappend)r4   rð   rñ   Úaxis_positionÚedgep1sÚedgep2sr®   Úedgep1Úedgep2Úedgep1_lÚedgep2_lÚedgep1_uÚedgep2_us                r   Ú_get_all_axis_line_edge_pointsz#Axis._get_all_axis_line_edge_pointsp  s0  € àˆØˆØˆØÐ-Ð-Ð-Ø!×<Ò<¸VÀVÑLÔL‰NˆF�FØ�hˆGØ�hˆGØ!�{ˆHˆHà!%×!@Ò!@ÀÈØJQð "Añ "Sô "SÑˆH�hà!%×!@Ò!@ÀÈØJQð "Añ "Sô "SÑˆH�hàÐ 1Ð1Ð1Ø—’˜xÑ(Ô(Ð(Ø—’˜xÑ(Ô(Ð(Ø—’ Ñ(Ô(Ð(ØÐ 1Ð1Ð1Ø—’˜xÑ(Ô(Ð(Ø—’˜xÑ(Ô(Ð(Ø—’ Ñ(Ô(Ð(Ø˜ Ð)Ð)r   c                 ó–  — t          j        d|¬¦  «         d„ | j                             ¦   «         D ¦   «         }t	          j        | j        j        dz   d¦  «        dz
  }t	          j        | j        j        d¦  «        }|dk    r%|dk    rg d¢}ng d	¢}d|cxk    rdk     rn n0d
|d<   n*|dk    r$|dk    rg d¢}ng d¢}d|cxk    rdk     rn nd|d<   d„ | j                             ¦   «         D ¦   «         }| j	        d         }| j        j
        }|dz
  }t	          j        || ¦  «        t	          j        ||¦  «                 |         }	|	S )aS  
        Get the direction of the tick.

        Parameters
        ----------
        position : str, optional : {'upper', 'lower', 'default'}
            The position of the axis.

        Returns
        -------
        tickdir : int
            Index which indicates which coordinate the tick line will
            align with.
        )rª   r©   ra   r­   c                 ó   — g | ]
}|d          ‘ŒS )rJ   r@   ©Ú.0Úvs     r   ú
<listcomp>z%Axis._get_tickdir.<locals>.<listcomp>›  s   € ÐEÐEÐE¨!˜˜9œÐEÐEÐEr   é´   ih  rª   r   )rF   rF   r   )r   r   r   r   rF   r©   )r   r   r   )rF   rF   r   c                 ó   — g | ]
}|d          ‘ŒS )rI   r@   r  s     r   r	  z%Axis._get_tickdir.<locals>.<listcomp>¬  s   € Ð8Ð8Ð8˜Q�!�C”&Ð8Ð8Ð8r   rI   )r   r¯   r{   Úvaluesr   ÚmodrW   ÚelevÚazimr}   rï   Úroll)
r4   r®   Útickdirs_baseÚelev_modÚazim_modÚinfo_irI   Úvert_axÚjrJ   s
             r   Ú_get_tickdirzAxis._get_tickdir‰  sŠ  € õ 	ÔÐ8À8ÐLÑLÔLÐLð FÐE¨t¬|×/BÒ/BÑ/DÔ/DÐEÑEÔEˆÝ”6˜$œ)œ.¨3Ñ.°Ñ4Ô4°sÑ:ˆÝ”6˜$œ)œ.¨#Ñ.Ô.ˆØ�wÒÐØ˜1Š}ˆ}Ø ) 	 	��à ) 	 	�Ø�HÐ"Ð"Ò"Ð"˜sÒ"Ð"Ð"Ð"Ð"Ø#$�˜aÑ øØ˜Ò Ð Ø˜1Š}ˆ}Ø ) 	 	��à ) 	 	�Ø�HÐ"Ð"Ò"Ð"˜sÒ"Ð"Ð"Ð"Ð"Ø#$�˜aÑ Ø8Ð8 $¤,×"5Ò"5Ñ"7Ô"7Ð8Ñ8Ô8ˆàŒL˜ÔˆØ”)Ô*ˆØ�a‰Kˆå”'˜& 1 "Ñ%Ô%¥b¤g¨m¸QÑ&?Ô&?Ô@ÀÔCˆØˆr   c                 ó  ‡	— |                       ¦   «         \  }}Š	}| j        }|d         }||         s||         }| j        d|z           }n||         }| j        d|z  dz            }t          j        ˆ	fd„|D ¦   «         ¦  «        }||fS )NrI   rF   r   c                 ó    •— g | ]
}‰|         ‘ŒS r@   r@   )r  ÚpÚtcs     €r   r	  z$Axis.active_pane.<locals>.<listcomp>¿  s   ø€ Ð-Ð-Ð- !˜˜1œÐ-Ð-Ð-r   )ré   r}   rÓ   r   rÉ   )
r4   rà   rá   ræ   ÚinfoÚindexÚlocÚplaneÚxysr  s
            @r   Úactive_panezAxis.active_paneµ  sž   ø€ Ø $× 4Ò 4Ñ 6Ô 6Ñˆˆd�B˜ØŒ|ˆØ�S”	ˆØ�UŒ|ð 	0Ø�u”+ˆCØ”L  U¡Ô+ˆEˆEà�u”+ˆCØ”L  U¡¨Q¡Ô/ˆEÝŒhÐ-Ð-Ð-Ð- uÐ-Ñ-Ô-Ñ.Ô.ˆØ�Cˆxˆr   c                 ó  — |                      d|                      ¦   «         ¬¦  «         |                      ¦   «         \  }}|dd…dd…f         | j        _        | j                             |¦  «         |                     d¦  «         dS )zˆ
        Draw pane.

        Parameters
        ----------
        renderer : `~matplotlib.backend_bases.RendererBase` subclass
        Úpane3d©ÚgidNrF   )Ú
open_groupÚget_gidr!  r“   ÚxyÚdrawÚclose_group)r4   Úrendererr   r  s       r   Ú	draw_panezAxis.draw_paneÂ  s�   € ð 	×Ò˜H¨$¯,ª,©.¬.ÐÑ9Ô9Ð9Ø×#Ò#Ñ%Ô%‰ˆˆSØ˜1˜1˜1˜b˜q˜b˜5”zˆŒ	ŒØŒ	�Š�xÑ Ô Ð Ø×Ò˜XÑ&Ô&Ð&Ð&Ð&r   c                 ó.   — g d¢}d|| j         d         <   |S )Nr   FrI   )r}   )r4   r   s     r   Ú_axmaskzAxis._axmaskÐ  s#   € Ø#Ð#Ð#ˆØ$)ˆˆtŒ|˜CÔ Ñ!Øˆr   c                 ó†  — |                       ¦   «         }| j        }|d         }	|d         }
|                      ¦   «         \  }}}}|                      ||¦  «        \  }}| j        j        | j        j        | j        j        g|	         }|                     ¦   «         }|  	                    |¦  «        }||         r||         n||          }|d         }|d         |z  }|d         |z  }|d         }||         }||z   }||z
  }d}||z  }|D �]5}| 
                    ¦   «         }|                     |                     ¦   «         g¦  «        d         ||	<   |||<   t          j        g |¢| j        j        ‘R Ž \  }}}|||<   t          j        g |¢| j        j        ‘R Ž \  }} }!|                     ¦   «         |z   |z  }"|||<   t#          |||"|                      ¦   «         ¦  «        }t          j        g |¢| j        j        ‘R Ž \  }#}$}%t'          |||f|| f|#|$f¦  «         |j                             ||j                 ¦  «         �Œ7|S )	z5Update the ticks ready for draw and return in a list.rI   rK   r(   rh   rg   rj   g       @r   )Ú_update_ticksr}   ré   rí   rW   ÚxaxisÚyaxisÚzaxisÚget_transformr  r|   Ú	transformÚget_locr   Úproj_transformÚMÚget_padr   r.  r,   r!   Úset_linewidthÚ_major)&r4   rý   r   r   ræ   Údeltas_per_pointÚposr0   r  r  rK   rà   rá   r  r   Ú
axis_transrJ   Ú	tickdeltaÚ	tick_infoÚtick_outÚtick_inÚtick_lwÚedgep1_tickdirÚout_tickdirÚ
in_tickdirÚdefault_label_offsetÚpointsr(   Úx1Úy1Úz1Úx2Úy2Úz2ÚlabeldeltasÚlxÚlyÚlzs&                                         r   Ú_get_updated_tickszAxis._get_updated_ticksÕ  si  € ð ×"Ò"Ñ$Ô$ˆØŒ|ˆØ�S”	ˆØ�y”/ˆà $× 4Ò 4Ñ 6Ô 6Ñˆˆd�B˜Ø×3Ò3°D¸$Ñ?Ô?‰ˆ�ð ”	” ¤¤°$´)´/ÐBÀ5ÔIˆØ×'Ò'Ñ)Ô)ˆ
ð ×#Ò# CÑ(Ô(ˆØ',¨W¤~ÐK�F˜7”O�O¸FÀ7¼OÐ;Kˆ	à˜”Lˆ	ØÐ-Ô.°Ñ:ˆØ˜OÔ,¨yÑ8ˆØ˜KÔ(ˆØ œˆØ$ xÑ/ˆØ# gÑ-ˆ
à!ÐØ! FÑ*ˆàð 	?ñ 	?ˆDà—+’+‘-”-ˆCØ#×-Ò-¨t¯|ª|©~¬~Ð.>Ñ?Ô?ÀÔBˆC�‰JØ&ˆC�‰LÝÔ.ÐA°ÐA°T´Y´[ÐAÐAÐA‰JˆB��BØ%ˆC�‰LÝÔ.ÐA°ÐA°T´Y´[ÐAÐAÐA‰JˆB��Bð  Ÿ<š<™>œ>Ð,@Ñ@ÀFÑJˆKØ)ˆC�‰LÝ# C¨°+¸t¿|º|¹~¼~ÑNÔNˆCÝÔ.ÐA°ÐA°T´Y´[ÐAÐAÐA‰JˆB��Bå! $¨¨R¨°2°r°(¸RÀ¸HÑEÔEÐEØŒN×(Ò(¨°´Ô)=Ñ>Ô>Ð>Ñ>àˆr   c	                 ód  — | j         }	|	d         }
|	d         }|	d         }|d         dk    r|}d}n|}d}t          ||||                      ¦   «         ¦  «        }t          j        g |¢| j        j        ‘R Ž \  }}}| j                             | j	        j
                             ¦   «         ¦  «         | j                             ||f¦  «         t          j        t          j        t          j        ||¦  «        ¦  «        ¦  «        }| j                             |¦  «         | j                             d¦  «         t          j        g |¢| j        j        ‘R Ž }||         |||f         k    rV||
         ||
|f         k    r?t          j        |¦  «        dz  dk    r$|                     ¦   «         g d¢k    r|
d	v rd
}nBd}n?d
}n<||
         ||
|f         k    r&t          j        |¦  «        dz  dk    r|
dk    rdnd
}nd}| j                             d¦  «         | j                             |¦  «         dS )z%Update the offset text ready to draw.rI   rK   rJ   rF   r   r   rc   )FTT)r   rF   ÚleftÚrightrb   N)r}   r   r.  r   r7  rW   r8  r˜   Úset_textÚmajorÚ	formatterÚ
get_offsetr   r   Ú_norm_text_angler   Úrad2degÚarctan2Úset_rotationÚset_rotation_modeÚcount_nonzeroÚtolistÚset_vaÚset_ha)r4   rý   rþ   rO  r   ræ   ÚpepÚdxÚdyr  r  rK   rJ   Ú
outeredgepÚ
outerindexr=  ÚolxÚolyÚolzÚangleÚcentptÚaligns                         r   Ú_update_offset_textzAxis._update_offset_text  sP  € ð Œ|ˆØ�S”	ˆØ�y”/ˆØ�y”/ˆð �1Œ:˜Š?ˆ?ØˆJØˆJˆJàˆJØˆJå 
¨G°[Ø $§¢¡¤ñ0ô 0ˆåÔ-Ð@¨sÐ@°D´I´KÐ@Ð@Ð@‰ˆˆS�#ØŒ× Ò  ¤Ô!5×!@Ò!@Ñ!BÔ!BÑCÔCÐCØŒ×$Ò$ c¨3 ZÑ0Ô0Ð0ÝÔ&¥r¤zµ"´*¸RÀÑ2DÔ2DÑ'EÔ'EÑFÔFˆØŒ×$Ò$ UÑ+Ô+Ð+ð 	Œ×)Ò)¨(Ñ3Ô3Ð3õ" Ô&Ð=¨Ð=°´´Ð=Ð=Ð=ˆØ�'Œ?˜S ¨*Ð!4Ô5Ò5Ð5à�u”  U¨JÐ%6Ô!7Ò7Ð7ÝÔ(¨Ñ/Ô/°!Ñ3°qÒ8Ð8ð —<’<‘>”>Ð%8Ð%8Ð%8Ò8Ð8¸UÀf¸_¸_Ø"�E�Eà#�E�Eð ��ð �u”  E¨:Ð$5Ô 6Ò6Ð6ÝÔ(¨Ñ/Ô/°!Ñ3°qÒ8Ð8à#(¨A¢: :˜˜°6��ð  �àŒ×Ò˜xÑ(Ô(Ð(ØŒ×Ò˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó°  — | j         d         }d||z   z  }t          ||||                      ¦   «         ¦  «        }t          j        g |¢| j        j        ‘R Ž \  }	}
}| j                             |	|
f¦  «         |  	                    | j         
                    ¦   «         ¦  «        rSt          j        t          j        t          j        ||¦  «        ¦  «        ¦  «        }| j                             |¦  «         | j                             |d         ¦  «         | j                             |d         ¦  «         | j                             |d         ¦  «         dS )z-Update the axis label position ready to draw.r2   rë   rd   re   rf   N)r}   r   r.  r   r7  rW   r8  r2   r   rÆ   Úget_textr   r[  r   r\  r]  r^  rb  rc  r_  )r4   rý   rþ   rO  r   re  rf  r2   ÚlxyzÚtlxÚtlyÚtlzrl  s                r   Ú_update_label_positionzAxis._update_label_positionN  s+  € à”˜WÔ%ˆà�f˜v‘oÑ&ˆÝ   w°¸T¿\º\¹^¼^ÑLÔLˆÝÔ-ÐA¨tÐA°T´Y´[ÐAÐAÐA‰ˆˆS�#ØŒ
×Ò  c 
Ñ+Ô+Ð+Ø× Ò  ¤×!4Ò!4Ñ!6Ô!6Ñ7Ô7ð 	+ÝÔ*­2¬:µb´jÀÀRÑ6HÔ6HÑ+IÔ+IÑJÔJˆEØŒJ×#Ò# EÑ*Ô*Ð*ØŒ
×Ò˜% œ+Ñ&Ô&Ð&ØŒ
×Ò˜% œ+Ñ&Ô&Ð&ØŒ
×$Ò$ U¨?Ô%;Ñ<Ô<Ð<Ð<Ð<r   c              #   óÒ  K  — | j         j        | j        _        | j         j        | j        _        |                      ¦   «         \  }}}}|                      ||¦  «        \  }}|                      d¬¦  «        j         	                    ¦   «         }| 
                    | j         j        j        ¦  «        }t          d|z  ¦  «        }	d|	z  }
d}| j        |z   |
z  |z  }t          j        |||¦  «        }t          j        | ||¦  «        }t#          |                      ||| j        ¦  «        Ž D �]\  }}}t)          j        ||g| j         j        ¦  «        }t          j        |¦  «        }| j         j         
                    |dd…df         g¦  «        | j         j         
                    |dd…df         g¦  «        z
  d         \  }}| j                             |d         |d         ¦  «         |                      |||||
|¦  «        }|                      ||||||||¦  «         t;          | j        || j        ¬	¦  «        V — �Œ| j                             ¦   «         �r| j                             ¦   «         rðt#          |                      ||| j         ¦  «        Ž D ]Î\  }}}t)          j        ||g| j         j        ¦  «        }t          j        |¦  «        }| j         j         
                    |dd…df         g¦  «        | j         j         
                    |dd…df         g¦  «        z
  d         \  }}|  !                    ||||||¦  «         t;          | j        ¬
¦  «        V — ŒËdS dS dS )aG  
        Update positions of all child artists ready to draw.  Artists may be drawn
        twice: if tick_position is 'both', the ticks, line and offset text show on both
        sides of the axes; if label_position is 'both' the label shows on both sides.
        Since tightbox calculation needs individual handling of the different Artist
        types, we return them through the dataclass `_UpdatedArtists` (as opposed to a
        plain list).
        Since we reuse the same artists with different positions, the calling function
        requires them after every position update, so we yield `_UpdatedArtists` up to
        four times with different content:

        - line, ticks, offset_text on one side
        - line, ticks, offset_text on the other side
        - label on one side
        - label on the other side
        F)Úrootg      R@é0   g      5@r   rF   r   )r/   r0   r1   )r2   N)"rW   r™   r2   rš   r˜   ré   rí   Ú
get_figureÚdpi_scale_transÚinvertedr5  ÚbboxÚsizerØ   Úlabelpadr   rÙ   Úzipr  rz   r   Ú_proj_trans_pointsr8  r   Ú	transAxesr/   r&   rS  ro  r.   Úget_visiblerq  ry   rv  )r4   rà   rá   r  ræ   r   r   ÚreltoinchesÚ	ax_inchesÚax_points_estimater<  Údefault_offsetrO  rð   rñ   rý   rþ   r=  rd  re  rf  r0   s                         r   Ú_update_all_positionszAxis._update_all_positions]  s¾  è è € ð" !%¤	Ô 3ˆŒ
ÔØ%)¤YÔ%8ˆŒÔ"ð !%× 4Ò 4Ñ 6Ô 6Ñˆˆd�B˜Ø×3Ò3°D¸$Ñ?Ô?‰ˆ�ð —o’o¨5�oÑ1Ô1ÔA×JÒJÑLÔLˆØ×)Ò)¨$¬)¬.Ô*=Ñ>Ô>ˆ	Ý   y¡Ñ1Ô1ÐØÐ 2Ñ2ÐØˆØ”} ~Ñ5Ð9IÑIÈFÑRˆõ ”˜%  tÑ,Ô,ˆÝ”˜5˜& $¨Ñ-Ô-ˆå#&¨×(KÒ(KØ+1°6¸4Ô;Nñ)Pô )Pð $Qð 	?ñ 	?ÑˆF�F˜Cõ Ô+¨V°VÐ,<¸d¼i¼kÑJÔJˆCÝ”*˜S‘/”/ˆCð ”iÔ)×3Ò3°S¸¸1¸¸a¸´[°MÑBÔBØ”iÔ)×3Ò3°S¸¸1¸¸a¸´[°MÑBÔBñCØDEôG‰FˆB�ð ŒI×Ò˜s 1œv s¨1¤vÑ.Ô.Ð.ð ×+Ò+Ø˜ ¨Ð0@À#ñGô GˆEð ×$Ò$Ø˜ ¨W°e¸SÀ"ÀbñJô Jð Jõ " t¤y¸Ø.2¬oð?ñ ?ô ?ð ?ð ?ð ?ñ ?ð Œ:×!Ò!Ñ#Ô#ñ 	8¨¬
×(;Ò(;Ñ(=Ô(=ð 	8å'*¨D×,OÒ,OØ/5°v¸tÔ?Sñ-Uô -Uð (Vð 8ð 8Ñ#�˜ õ Ô/°¸Ð0@À$Ä)Ä+ÑNÔN�Ý”j ‘o”o�Øœ)Ô-×7Ò7¸¸Q¸q¸SÀ!¸V¼¸ÑFÔFØœ	Ô+×5Ò5°s¸1¸Q¸3À¸6´{°mÑDÔDñEØFGôI‘��Bð ×+Ò+Ø˜F K°¸"¸bñBô Bð Bõ &¨D¬JÐ7Ñ7Ô7Ð7Ð7Ð7Ð7ð	8ð 	8ð 	8ð 	8ð8ð 8r   c                 óò   — |                      d|                      ¦   «         ¬¦  «         |                      ¦   «         D ]}|D ]}|                     |¦  «         ŒŒ|                     d¦  «         d| _        d S )NÚaxis3dr$  F)r&  r'  rˆ  r)  r*  r¿   )r4   r+  Úupdated_artistsÚarts       r   r)  z	Axis.draw¯  sˆ   € à×Ò˜H¨$¯,ª,©.¬.ÐÑ9Ô9Ð9à#×9Ò9Ñ;Ô;ð 	#ð 	#ˆOØ&ð #ð #�Ø—’˜Ñ"Ô"Ð"Ð"ð#ð 	×Ò˜XÑ&Ô&Ð&ØˆŒ
ˆ
ˆ
r   c                 ó,  — | j         j        sd S |                     d|                      ¦   «         ¬¦  «         |                      ¦   «         }t          |¦  «        �r#| j        }|d         }|                      ¦   «         \  }}}}| j                              ¦   «         | j          	                    ¦   «         | j          
                    ¦   «         }}
}	t          j        |	d         |
d         |d         g¦  «        }t          j        |	d         |
d         |d         g¦  «        }t          j        |||¦  «        }t          j        | ||¦  «        }t          j        |t          |¦  «        df¦  «        }d„ |D ¦   «         |d d …|f<   t          j        |||gd¬¦  «        }||dz
           |d d …d|dz
  f<   ||dz
           |d d …d|dz
  f<   | j                             |¦  «         |d	         }| j                             |d
         ¦  «         | j                             |d         ¦  «         | j                             |d         ¦  «         | j                             ¦   «          | j                             |¦  «         |                     d¦  «         d S )NÚgrid3dr$  rI   r   r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r@   )r6  )r  r(   s     r   r	  z"Axis.draw_grid.<locals>.<listcomp>Ó  s    € Ð?Ð?Ð?°˜dŸlšl™nœnÐ?Ð?Ð?r   )r   rF   rn   ri   rj   rl   )rW   Ú
_draw_gridr&  r'  r0  rÅ   r}   ré   rÌ   rÍ   rÎ   r   rÉ   rÙ   ÚtileÚstackr—   Úset_segmentsÚ	set_colorr:  r$   Údo_3d_projectionr)  r*  )r4   r+  r0   r  r  rà   rá   r  ræ   ÚxlimÚylimÚzlimÚ	data_minsÚ	data_maxsrð   rñ   Úxyz0r   Úgridinfos                      r   Ú	draw_gridzAxis.draw_gridº  sy  € àŒyÔ#ð 	ØˆFà×Ò˜H¨$¯,ª,©.¬.ÐÑ9Ô9Ð9à×"Ò"Ñ$Ô$ˆÝˆu‰:Œ:ñ  	*à”<ˆDØ˜”IˆEð %)×$8Ò$8Ñ$:Ô$:Ñ!ˆD�$˜˜EØ $¤	× 4Ò 4Ñ 6Ô 6Ø $¤	× 4Ò 4Ñ 6Ô 6Ø $¤	× 4Ò 4Ñ 6Ô 6ð �$ˆDõ œ $ q¤'¨4°¬7°D¸´GÐ!<Ñ=Ô=ˆIÝœ $ q¤'¨4°¬7°D¸´GÐ!<Ñ=Ô=ˆIÝ”X˜e Y°	Ñ:Ô:ˆFÝ”X˜u˜f i°Ñ;Ô;ˆFõ ”7˜6¥C¨¡J¤J° ?Ñ3Ô3ˆDØ?Ð?¸Ð?Ñ?Ô?ˆD����E�‰Nõ ”H˜d D¨$Ð/°aÐ8Ñ8Ô8ˆEØ%+¨E°A©IÔ%6ˆE�!�!�!�Q˜ ™	�/Ñ"Ø%+¨E°A©IÔ%6ˆE�!�!�!�Q˜ ™	�/Ñ"ØŒN×'Ò'¨Ñ.Ô.Ð.Ø˜F”|ˆHØŒN×$Ò$ X¨gÔ%6Ñ7Ô7Ð7ØŒN×(Ò(¨°+Ô)>Ñ?Ô?Ð?ØŒN×(Ò(¨°+Ô)>Ñ?Ô?Ð?ØŒN×+Ò+Ñ-Ô-Ð-ØŒN×Ò Ñ)Ô)Ð)à×Ò˜XÑ&Ô&Ð&Ð&Ð&r   F)Úfor_layout_onlyc                ó„  — |                       ¦   «         sd S | j        j        €V| j                             ¦   «         | j        _        t          j                             | j        j        ¦  «        | j        _        g }|                      ¦   «         D �]}|j	        x}�.|  
                    ||¦  «        D ]}|                     |¦  «         Œ|j        x}�<|                      ¦   «         r(|                     |                     |¦  «        ¦  «         |j        x}�P|                      ¦   «         r<|                     ¦   «         r(|                     |                     |¦  «        ¦  «         |j        �/|s-|                     |j                             |¦  «        ¦  «         �Œ|rt$          j                             |¦  «        S d S rQ   )rƒ  rW   r8  Úget_projr   ÚlinalgÚinvÚinvMrˆ  r0   Ú_get_ticklabel_bboxesÚextendr/   rù   Úget_window_extentr1   rq  r2   ÚmtransformsÚBboxÚunion)	r4   r+  rž  Úbboxesr‹  r0   Ú
tlabel_bbsr/   r1   s	            r   Úget_tightbboxzAxis.get_tightbboxè  s¨  € à×ÒÑ!Ô!ð 	ØˆFàŒ9Œ;ÐØœ)×,Ò,Ñ.Ô.ˆDŒIŒKÝœYŸ]š]¨4¬9¬;Ñ7Ô7ˆDŒIŒNàˆà#×9Ò9Ñ;Ô;ð 	Qñ 	QˆOØ(Ô.Ð.�Ð;Ø"&×"<Ò"<¸UÀHÑ"MÔ"Mð .ð .�JØ—M’M *Ñ-Ô-Ð-Ð-à'Ô,Ð,�Ð9¸d×>NÒ>NÑ>PÔ>PÐ9Ø—’˜d×4Ò4°XÑ>Ô>Ñ?Ô?Ð?à /Ô ;Ð;�ÐHØ×+Ò+Ñ-Ô-ð IØ2=×2FÒ2FÑ2HÔ2Hð Ià—’˜k×;Ò;¸HÑEÔEÑFÔFÐFàÔ$Ð0¸Ð0Ø—’˜oÔ3×EÒEÀhÑOÔOÑPÔPÐPùàð 	ÝÔ#×)Ò)¨&Ñ1Ô1Ð1à�4r   Úget_data_interval)Úalternativer`   c                 ó*   — |                       ¦   «         S rQ   )r­  rŠ   s    r   r‹   zAxis.<lambda>	  ó   €  $×"8Ò"8Ñ":Ô":€ r   c                 ó   —  | j         |Ž S rQ   )r‚   ©r4   rð   s     r   r‹   zAxis.<lambda>
  ó   € Ð*@¨$Ô*@À&Ð*I€ r   Úget_view_intervalc                 ó*   — |                       ¦   «         S rQ   )r´  rŠ   s    r   r‹   zAxis.<lambda>  r°  r   c                 ó   —  | j         |Ž S rQ   )rƒ   r²  s     r   r‹   zAxis.<lambda>  r³  r   rQ   )/r6   r7   r8   r9   rÓ   r{   rZ   r\   ru   rr   rs   Ú__signature__r   Ú
deprecatedÚpropertyrT   r…   rœ   rž   r¦   r±   r³   rµ   r·   r”   r„   rÆ   ré   rí   r÷   r  r  r!  r,  r.  rS  ro  rv  rˆ  r   Úallow_rasterizationr)  r�  r¬  Ú
d_intervalÚ
v_intervalÚ__classcell__)rˆ   s   @r   rB   rB   A   s¢  ø€ € € € € Ø)Ð)ð€Gð  ¨yÐ9Ð9Ø ¨yÐ9Ð9Ø ¨yÐ9Ð9ðð €Gð  $ðð ð ð ð ð /3ð ð ð ð ð ðQð Qð Qð Qð Qðf /˜WÔ.¨yÑ9Ô9€HÔØ/ˆ?ˆ4Œ?˜5¨$Ð/Ñ/Ô/ØˆÐ,Ð,Ñ-Ô-ñ/ô /€Dð9ð 9ð 9ð* €T„_�U DÐ)Ñ)Ô)ðð ñ *Ô)ððð ð ð ð ð ðð ð ð ð ð ð'ð 'ð 'ð	#ð 	#ð 	#ð(ð (ð (ð	$ð 	$ð 	$ðð ð ð ð$ð ð ð!ð !ð !ð$.ð $.ð $.ðLð ð ð*ð *ð *ð *ð0*ð *ð *ð *ð2*ð *ð *ðXð ð ð'ð 'ð 'ðð ð ð
0ð 0ð 0ðdE&ð E&ð E&ðN=ð =ð =ðP8ð P8ð P8ðd Ôðð ñ  Ôðð Ôð)'ð )'ñ  Ôð)'ðZ¸eð ð ð ð ð ð>>��”ØÐ.¸ð>ñ >ô >àˆHÐ:Ð:ØIÐIñKô KñLô L€Jð>��”ØÐ.¸ð>ñ >ô >àˆHÐ:Ð:ØIÐIñKô KñLô L€J€J€J€J€Jr   rB   c                   óf   — e Zd ZdZ ej        ddd¦  «        \  ZZ ej        ddd¦  «        \  ZZ	dS )ÚXAxisrL   ÚviewÚ
xy_viewLimÚ	intervalxÚdataÚ
xy_dataLimN©
r6   r7   r8   rv   ÚmaxisÚ_make_getset_intervalr´  rƒ   r­  r‚   r@   r   r   r¿  r¿    óY   € € € € € Ø€IØ+F¨5Ô+FØ�˜kñ,+ô ,+Ñ(ÐÐ(à+F¨5Ô+FØ�˜kñ,+ô ,+Ñ(ÐÐ(Ð(Ð(r   r¿  c                   óf   — e Zd ZdZ ej        ddd¦  «        \  ZZ ej        ddd¦  «        \  ZZ	dS )ÚYAxisrM   rÀ  rÁ  Ú	intervalyrÃ  rÄ  NrÅ  r@   r   r   rÊ  rÊ    rÈ  r   rÊ  c                   óf   — e Zd ZdZ ej        ddd¦  «        \  ZZ ej        ddd¦  «        \  ZZ	dS )ÚZAxisrN   rÀ  Ú
zz_viewLimrÂ  rÃ  Ú
zz_dataLimNrÅ  r@   r   r   rÍ  rÍ  !  rÈ  r   rÍ  )r   )Údataclassesr   rr   Únumpyr   Ú
matplotlibr   r   r   r   r:   r   rÆ  r   r‘   r	   r>   r
   r§  r   rº   r   r   r   r   r,   r.   r¿  rB   rÊ  rÍ  r@   r   r   ú<module>rÓ     sì  ðð
 "Ð !Ð !Ð !Ð !Ð !Ø €€€à Ð Ð Ð à Ð Ð Ð ðAð Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Ð Ð Ð Ð Ð Ð Ð ðEð Eð Eð Eð
%ð 
%ð 
%ð ðð ð ð ð ñ ô ñ „ðð2MLð MLð MLð MLð MLˆ5Œ;ñ MLô MLð MLð`+ð +ð +ð +ð +ˆDñ +ô +ð +ð+ð +ð +ð +ð +ˆDñ +ô +ð +ð+ð +ð +ð +ð +ˆDñ +ô +ð +ð +ð +r   