
    DVf0s                         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 ddlmZmZ ddZd Z G d de
j,                        Z G d	 d
e      Z G d de      Z G d de      Zy)    N)_apiartistlinesaxispatches
transformscolors   )art3dproj3dc                 p    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       d/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/mpl_toolkits/mplot3d/axis3d.py_move_from_centerr      s6    
 JJuE6BKK57?;;fDDD    c                    | j                   j                  |       | j                  j                  |       | j                  j	                  d       | j
                  j	                  d       | j                  j                  d       | j                  j                  d       | j                  j                  ||       | j                  j                  dgdg       y)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     	KKX&KKX&NNt$NNu%NN  %NNb!NNFF+MMA3$r   c                   v    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d5 fd	Zd5 fd	Zd Zd Zd Zd Zd5dZd Zd Zd Zd5d Zd5d!Zd" Zd# Zd$ Z d% Z!d& Z"d' Z#d( Z$e%jL                  d)        Z'e%jL                  d*        Z(d5d+d,d-Z)  ej                  dd.d/       ed0 d1             Z*  ej                  dd2d/       ed3 d4             Z+ xZ,S )6AxiszAn Axis class for the 3D plots.))r            )r
            )r   r
   r1   r.   )r,   r/   r0   r-   )r   r
   r/   r,   )r.   r1   r0   r-   r   r
   )r
   r   r/   )itickdirjuggled)r   r
   r/   r/   )r   r/   r
   )xyzN)rotate_labelc                    t               S Nlocals)selfadirv_intervalxd_intervalxaxesr8   argskwargss           r   	_old_initzAxis._old_init6   s	    xr   c                    t               S r:   r;   )r=   rA   r8   rC   s       r   	_new_initzAxis._new_init:   s	    xr   c           	      &   t        j                  | j                  | j                  gg|i |}d|v rzt        j                  ddt        j                  t        |       j                         d       |d   | j                  k7  r't        dt        |       j                   d|d         |d   }|d	   }|j                  d
d      }|d   }| j                  }d| _        d| _        | j                  |   j!                         | _        | j"                  j%                  ddddt&        j(                  d| d   dddd       t&        j(                  d   rk| j"                  j%                  dddddddd       | j"                  d    j%                  d!t&        j(                  d"   t&        j(                  d"   d#i       n| j"                  j%                  t&        j(                  d$   t&        j(                  d%   dt&        j(                  d&   t&        j(                  d'   t&        j(                  d(   dd       | j"                  d    j%                  d!|d)v rt&        j(                  d*   nt&        j(                  d+   |d)v rt&        j(                  d,   nt&        j(                  d-   d#i       t+        |    |g|i | d.|v r | j,                  |d.     d/|v r | j.                  |d/     | j1                  |       | j3                          y )0Nr>   3.6zUThe signature of 3D Axis constructors has changed in %(since)s; the new signature is T)messagependingzCannot instantiate z with adir=rA   r8   rB    rC   defaultcenteranchor)vaharotation_modezaxes3d.zaxis.panecolorg?g?)inward_factoroutward_factor)labelcolorr%   z_internal.classic_modeg      ?)r   r   r   r
   )	linewidthrU   )?rW   rW   r
   g      ?r   )rU   rV   	linestyle)axislinegridr%   rV   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.widthr@   r?   )r   select_matching_signaturerD   rF   warn_deprecatedinspect	signaturetype__init__	axis_name
ValueError__name__get_label_position_tick_position_AXINFOcopy_axinfoupdatemplrcParamssuperset_data_intervalset_view_intervalset_rotate_label_init3d)r=   rB   rC   paramsrA   r8   name	__class__s          r   ra   zAxis.__init__=   s   //^^T^^,?/3?7=?V   ">$$T$Z%8%89: <EIK f~/ #6tDz7J7J6K L..4Vn-?"A B Bf~n-zz&"%!~~(' ||D)..0$H'/1\\GD6"@A!$"%	
 	 <<01LL*.F/!$!$!  LL '',,'89<<(9:)  LL!$.>!? \\*:;
 !\\,7!$.>!?!$.>!?
! 
 LL ''=AT\%89 \\*=>=AT\%89 \\*=>	) 	 	/// F""D""F=$9:F""D""F=$9:l+r   rH   T)rJ   c                     | j                   S r:   )rb   r=   s    r   <lambda>zAxis.<lambda>   s
    dnn r   c                 <   t        j                  dd| j                  d   d   | j                  d   d   d      | _        t	        j
                  ddgddggd	
      | _        | j                  | j                  d          | j                  j                  | j                         | j                  j                  | j                         t        j                  g       | _        | j                  j                  | j                         | j                  j                  | j                         | j                  j                  | j                         | j                  j                  | j                  _        | j                  j                  | j                  _        y )N)r   r   rY   rV   rU   T)xdataydatarV   rU   antialiasedr   r
   F)closed)mlinesLine2Drj   linempatchesPolygonpaneset_pane_colorrA   _set_artist_propsr   Line3DCollection	gridlinesrT   
offsetText	transData
_transformrw   s    r   rr   zAxis._init3d   s"   MMll:.{;,,z*73		 $$q!fq!f%5eD	DLL12		##DII.		##DII.//3		##DNN3		##DJJ/		##DOO4 $		 3 3

%)YY%8%8"r   c                 $    | j                          y r:   )rr   rw   s    r   init3dzAxis.init3d   s    r   c                     t         |   |      }|D ]e  }|j                  |j                  |j                  |j
                  |j                  fD ]'  }|j                  | j                  j                         ) g |S r:   )
rn   get_major_ticksr   r    r$   r   r   set_transformrA   r   r=   numtickstickstobjru   s        r   r   zAxis.get_major_ticks   q    '1 	7AKKajj!((AHHN 7!!$))"5"567	7 r   c                     t         |   |      }|D ]e  }|j                  |j                  |j                  |j
                  |j                  fD ]'  }|j                  | j                  j                         ) g |S r:   )
rn   get_minor_ticksr   r    r$   r   r   r   rA   r   r   s        r   r   zAxis.get_minor_ticks   r   r   c                     |dv rt        j                  dd|dd       yt        j                  g d|	       || _        y)
z
        Set the ticks position.

        Parameters
        ----------
        position : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the bolded axis lines, ticks, and tick labels.
        topbottom3.8	position=argument value'upper' or 'lower'rt   obj_typealternativeNlowerupperbothrL   noneposition)r   r]   check_in_listrg   r=   r   s     r   set_ticks_positionzAxis.set_ticks_position   sM     ((  	{^*:-AC 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.
        )rg   rw   s    r   get_ticks_positionzAxis.get_ticks_position   s     """r   c                     |dv rt        j                  dd|dd       yt        j                  g d|	       || _        y)
z
        Set the label position.

        Parameters
        ----------
        position : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the axis label.
        r   r   r   r   r   r   Nr   r   )r   r]   r   rf   r   s     r   set_label_positionzAxis.set_label_position   sM     ((  	{^*:-AC H$,	.'r   c                     | j                   S )z
        Get the label position.

        Returns
        -------
        str : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the axis label.
        )rf   rw   s    r   get_label_positionzAxis.get_label_position   s     ###r   c                    t        j                  ||      }|| j                  d<   | j                  j	                  |       | j                  j                  |       | j                  j                  |d          d| _        y)z
        Set pane color.

        Parameters
        ----------
        color : color
            Color for axis pane.
        alpha : float, optional
            Alpha value for axis pane. If None, base it on *color*.
        rU   TN)mcolorsto_rgbarj   r   set_edgecolorset_facecolor	set_alphastale)r=   rU   alphas      r   r   zAxis.set_pane_color   sc     u- %W		&		&		E"I&
r   c                      || _         d| _        y)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   )r=   vals     r   rq   zAxis.set_rotate_label	  s    
 !
r   c                 N    | j                   | j                   S t        |      dkD  S )Nr.   )r   len)r=   texts     r   get_rotate_labelzAxis.get_rotate_label  s(    )%%%t9q= r   c                    t        j                  | j                  j                         | j                  j	                         | j                  j                         g      j                  \  }}d||z   z  }||z
  dz  }|d|z  z  }|d|z  z  }|d   |d   |d   |d   |d   |d   f}| j                  j                  || j                  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         |	|
<   a ||	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      }nA|dk(  rt        j                  d|d   d	g      }n |dk(  rt        j                  |d   d	d	g      }||||||fS )
N      ?   g      ?r   r
   r/   r,   TF)r   arrayrA   
get_xbound
get_ybound
get_zboundT_tunit_cubeMzerosrangemean_PLANESabsfinfofloatepssumwhere)r=   rendererminsmaxsr   r   boundsbounds_projmeans_z0means_z1r2   highsequalsverticals                 r   _get_coord_infozAxis._get_coord_info  s1   XXII  "II  "II  "
  1	 	d % +#vv a$q'47DGT!Wd1gEii++FDIIKK@ 88A;88A;q 	KA''+dll1q5.A1.D"EFHQK''+dll1q519.Eq.H"IJHQK	K 8# 8+,0C0CC66&>Qxx(+A.H1}$eAh!78Q$a%!89Q%(E5!9:T7FK>>r   c                    ||g}|ddd   }|||g|||g|||gg}|| j                   j                     | j                  d      }| j                  d   }|d   j                         }|dk(  r|d   |d      |d   |d      k  s|dk(  r)|d   |d      |d   |d      kD  r|d   |d      ||d   <   n|d   |d      ||d   <   |j                         }	|d   |d      |	|d   <   ||	fS )	z3Get the edge points for the black bolded axis line.Nr   r2   r4   r   r   r
   r   )rA   _vertical_axisrj   ri   )
r=   minmaxmaxminr   mbmb_revmmr4   edge_point_0edge_point_1s
             r   _get_axis_line_edge_pointszAxis._get_axis_line_edge_points?  s6   
 fDbD66"VVR$82r2,G		(()$,,s*;<,,y)!uzz| RU72;%7"Q%:L%LW$Awr{);beGBK>P)P(*1gbk(:L%')!uWQZ'8L$#((*#%a5#4WQZ \))r   c                    g }g }g }|dv r| j                  ||      \  }}|g}|g}dg}n| j                  ||d      \  }	}
| j                  ||d      \  }}|dv r3|j                  |	       |j                  |
       |j                  d       |dv r3|j                  |       |j                  |       |j                  d       |||fS )N)NrL   rL   r   r   r   )r   r   )r   r   )r   append)r=   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_pointsW  s    --!<<VVLNFFhGhG!{H!%!@!@JQ "A "SHh!%!@!@JQ "A "SHh 11x(x(( 11x(x(())r   c                    t        j                  d|       | j                  j                         D cg c]  }|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 n,d
|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<   | j                  j                         D cg c]  }|d   	 }}| j                  d   }| j                  j                  }|dz
  }	t	        j                  ||	       t	        j                  ||	         |   }
|
S c c}w c c}w )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   rL   r   r3      ih  r   r   )r/   r/   r   )r
   r   r   r
   r/   r   )r
   r   r
   )r/   r/   r
   r2   )r   r   rh   valuesr   modrA   elevazimrj   r   roll)r=   r   vtickdirs_baseelev_modazim_modinfo_ir2   vert_axjr3   s              r   _get_tickdirzAxis._get_tickdirp  sV    	88L 04||/B/B/DE!9EE66$))..3.4s:66$))..#.w1} ) )H"s"#$a  1} ) )H"s"#$a "&,,"5"5"78Q!C&88LL))**aK''&1"%bggmQ&?@C1 F" 9s   E0E5c                     | j                  |      \  }}}}}}| j                  }|d   }	||	   s||	   }
| j                  d|	z     }n||	   }
| j                  d|	z  dz      }t        j                  |D cg c]  }||   	 c}      }||
fS c c}w )Nr2   r/   r
   )r   rj   r   r   r   )r=   r   r   r   r   r   tcr   infoindexlocplanepxyss                 r   active_panezAxis.active_pane  s    151E1Eh1O.dGVR||S	U|u+CLLU+Eu+CLLUQ/Ehhu-!1-.Cx .s   4Bc                     |j                  d| j                                | j                  |      \  }}|ddddf   | j                  _        | j                  j                  |       |j                  d       y)z
        Draw pane.

        Parameters
        ----------
        renderer : `~matplotlib.backend_bases.RendererBase` subclass
        pane3dgidNr/   )
open_groupget_gidr  r   xydrawclose_group)r=   r   r  r  s       r   	draw_panezAxis.draw_pane  sf     	H$,,.9##H-S1bqb5z				x X&r   c                 2    g d}d|| j                   d   <   |S )NTTTFr2   )rj   )r=   r   s     r   _axmaskzAxis._axmask  s    #$)t||C !r   c                 v   | j                         }| j                  }	|	d   }
| j                  |      }||   r||   n||    }|	d   }|d   |z  }|d   |z  }|d   }||   }||z   }||z
  }d}||z  }|D ]A  }|j                         }|j	                         ||
<   |||<   t        j                  g || j                  j                   \  }}}|||<   t        j                  g || j                  j                   \  }}}|j                         |z   |z  }|||<   t        |||| j                               }t        j                  g || j                  j                   \  }}} t        |||f||f||f       |j                  j                  ||j                            |j!                  |       D y )Nr2   r%   rS   rR   rV   g       @)_update_ticksrj   r  ri   get_locr   proj_transformrA   r   get_padr   r  r)   r   set_linewidth_majorr  )!r=   r   r   r   r   r   deltas_per_pointposr   r	  r
  r3   	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   _draw_tickszAxis._draw_ticks  s   ""$||S	 ##C(',W~F7OF7O;K	L	-.:O,y8K($x/#g-
!!F* 	 D++-CCJ&CL..AATYY[[AJBB%CL..AATYY[[AJBB  <<>,@@FJK)CL#C+t||~NC..AATYY[[AJBB!$R2r(RHENN(()=>IIh%	 r   c
                    | j                   }
|
d   }|
d   }|
d   }|d   dk(  r|}d}n|}d}t        |||| j                               }t        j                  g || j
                  j                   \  }}}| j                  j                  | j                  j                  j                                | j                  j                  ||f       t        j                  t        j                   t        j"                  |	|                  }| j                  j%                  |       | j                  j'                  d       t        j                  g || j
                  j                   }||   |||f   kD  rJ||   |||f   k  r:t        j(                  |      dz  dk(  r|j+                         g dk(  r|d	v rd
}n:d}n7d
}n4||   |||f   kD  r%t        j(                  |      dz  dk(  r
|dk(  rdnd
}nd}| j                  j-                  d       | j                  j/                  |       | j                  j1                  |       y )Nr2   r4   r3   r/   r   r
   rN   )FTT)r
   r/   leftrightrM   )rj   r   r  r   r   rA   r   r   set_textmajor	formatter
get_offsetr   r   _norm_text_angler   rad2degarctan2set_rotationset_rotation_modecount_nonzerotolistset_vaset_har  )r=   r   r   r   r6  r   r   pepdxdyr	  r
  r4   r3   
outeredgep
outerindexr%  olxolyolzanglecentptaligns                          r   _draw_offset_textzAxis._draw_offset_text  s    ||S	y/y/ 1:?JJJJ
G[ $0--@s@DIIKK@S#  !5!5!@!@!BC$$c3Z0&&rzz"**R2D'EF$$U+ 	))(3" &&==='?S*!455uUJ%6!77((/!3q8 <<>%88Uf_"E#E  uE:$5 66((/!3q8#(A:6  x(u%X&r   c                    | j                   d   }d||z   z  }	t        |	||| j                               }	t        j                  g |	| j
                  j                   \  }
}}| j                  j                  |
|f       | j                  | j                  j                               rWt        j                  t        j                  t        j                  ||                  }| j                  j!                  |       | j                  j#                  |d          | j                  j%                  |d          | j                  j'                  |d          | j                  j)                  |       y )NrT   r   rO   rP   rQ   )rj   r   r  r   r   rA   r   rT   r   r   get_textr   rB  r   rC  rD  rE  rI  rJ  rF  r  )r=   r   r   r   r6  r   rL  rM  rT   lxyztlxtlytlzrS  s                 r   _draw_labelszAxis._draw_labels+  s   W% fvo& wT\\^L--AtATYY[[AS#

c
+  !4!4!67**2::bjjR6H+IJEJJ##E*

%+&

%+&

$$U?%;<

!r   c                    | j                   j                  | j                  _        | j                   j                  | j                  _        |j                  d| j                                | j                  |      \  }}}}}}| j                  j                  j                         }|j                  | j                   j                  j                        }	t        d|	z        }
d|
z  }d}| j                  |z   |z  |z  }t!        j"                  |||      }t!        j"                  | ||      }t%        | j'                  ||| j(                         D ]  \  }}}t+        j,                  ||g| j                   j.                        }t!        j0                  |      }| j                   j2                  j                  |dddf   g      | j                   j2                  j                  |dddf   g      z
  d   \  }}| j4                  j7                  |d   |d          | j4                  j9                  |       | j;                  |||||||       | j=                  |||||||||	        t%        | j'                  ||| j>                         D ]  \  }}}t+        j,                  ||g| j                   j.                        }t!        j0                  |      }| j                   j2                  j                  |dddf   g      | j                   j2                  j                  |dddf   g      z
  d   \  }}| jA                  |||||||        |jC                  d       d	| _"        y )
Naxis3dr  g      R@0   g      5@r   r/   r
   F)#rA   r   rT   r   r   r  r  r   figuredpi_scale_transinverted	transformbboxsizer   labelpadr   r   zipr   rg   r   _proj_trans_pointsr   r   	transAxesr   r#   r  r:  rV  rf   r]  r  r   )r=   r   r   r   r   r   r  r   reltoinches	ax_inchesax_points_estimater$  default_offsetr6  r   r   r   r   r%  rK  rL  rM  s                         r   r  z	Axis.draw;  s8    $		 3 3

%)YY%8%8"H$,,.9 261E1Eh1O.dGVR kk11::<))$))..*=*=>	 y1 22}}~59IIFR %t,5&$-#&(K(K+164;N;N)P $Q 	@FFC ++VV,<diikkJC**S/C ii))33S1a[MBii))33S1a[MBCDEGFB IIs1vs1v.IINN8$ Xvw-s4 ""8VV[#*E3B@3	@8 $'(K(K+164;O;O)Q $R 		VFFC ++VV,<diikkJC**S/Cii))33S1a[MBii))33S1a[MBCDEGFB hWbRTU		V 	X&
r   c                    | j                   j                  sy |j                  d| j                                | j	                         }t        |      r| j                  }|d   }| j                  |      \  }}}}}}t        j                  |||      }	t        j                  | ||      }
t        j                  |	t        |      df      }|D cg c]  }|j                          c}|d d |f<   t        j                  |||gd      }|
|dz
     |d d d|dz
  f<   |
|dz
     |d d d|dz
  f<   | j                  j                  |       |d   }| j                  j                  |d	          | j                  j!                  |d
          | j                  j#                  |d          | j                  j%                          | j                  j'                  |       |j)                  d       y c c}w )Ngrid3dr  r2   r
   )r   r/   r   rZ   rU   rV   rX   )rA   
_draw_gridr  r  r  r   rj   r   r   r   tiler  stackr   set_segments	set_colorr"  r!   do_3d_projectionr  r  )r=   r   r   r	  r
  r   r   _r   r   r   xyz0r%   r   gridinfos                  r   	draw_gridzAxis.draw_grid{  s   yy##H$,,.9""$u:<<DIE)-)=)=h)G&D$1aXXeT40FXXufdD1F 776CJ?3D9>?dlln?DEN HHdD$/a8E%+EAI%6E!Q	/"%+EAI%6E!Q	/"NN''.F|HNN$$Xg%67NN((+)>?NN((+)>?NN++-NN)X&# @s   G4F)for_layout_onlyc                   | j                         sy | j                         }| j                         }g | j                  t	        |            | j                  t	        |            }| j                         \  }}||kD  r||}}| j                         j                  ||g      }g }	|D ]X  }
	 | j                         j                  |
j                               }t        j                  ||      sH|	j                  |
       Z |	}| j                  ||      \  }}g }| j                  j                         r*|j                  | j                  j!                  |             | j"                  j                         rF|sD| j"                  j%                         r*|j                  | j"                  j!                  |             t        j&                  j)                  g |||      S # t        $ r Y Iw xY wr:   )get_visibleget_majorticklocsget_minorticklocsr   r   r   get_view_intervalget_transformrd  r  mtransforms_interval_contains_closer   AssertionError_get_ticklabel_bboxesr   get_window_extentrT   rX  Bboxunion)r=   r   r{  
major_locs
minor_locsr   view_low	view_high
interval_tticks_to_drawr%   loc_tbb_1bb_2others                  r   get_tightbboxzAxis.get_tightbbox  s   ! ++-
++-
9$&&s:7 9&&s:79"446)i"+XiH'')33Xy4IJ
 		/D/**,66t||~F 77
EJ!((.		/ //x@
d99  "LL44X>?JJ""$_

##%LL55h?@%%&<&<t&<e&<==' "  s   --G&&	G32G3get_data_interval)r   rJ   c                 "    | j                         S r:   )r  rw   s    r   rx   zAxis.<lambda>      $"8"8": r   c                       | j                   | S r:   )ro   r=   r   s     r   rx   zAxis.<lambda>      *@$*@*@&*I r   r  c                 "    | j                         S r:   )r  rw   s    r   rx   zAxis.<lambda>  r  r   c                       | j                   | S r:   )rp   r  s     r   rx   zAxis.<lambda>  r  r   r:   )-rd   
__module____qualname____doc__r   rh   rD   rF   ra   r^   r_   __signature__r   
deprecatedpropertyr>   rr   r   r   r   r   r   r   r   r   rq   r   r   r   r   r  r  r  r  r:  rV  r]  r   allow_rasterizationr  rz  r  
d_interval
v_interval__classcell__)ru   s   @r   r+   r+   &   s   )G y9y9y9G  $ /3 Qf /W..y9H/?4??5$/,-/D9* T__UD) *'$	#($	$$!&?P*0*2*X'
& PE'N"  =  =~ $'  $'P,>e ,>\>.>:IKLJ>.>:IKLJr   r+   c                   l    e Zd ZdZ ej
                  ddd      \  ZZ ej
                  ddd      \  ZZ	y)XAxisr5   view
xy_viewLim	intervalxdata
xy_dataLimN
rd   r  r  rb   maxis_make_getset_intervalr  rp   r  ro   rK   r   r   r  r    G    I+F5+F+Fk,+((+F5+F+Fk,+((r   r  c                   l    e Zd ZdZ ej
                  ddd      \  ZZ ej
                  ddd      \  ZZ	y)YAxisr6   r  r  	intervalyr  r  Nr  rK   r   r   r  r    r  r   r  c                   l    e Zd ZdZ ej
                  ddd      \  ZZ ej
                  ddd      \  ZZ	y)ZAxisr7   r  
zz_viewLimr  r  
zz_dataLimNr  rK   r   r   r  r    r  r   r  )r  )r^   numpyr   
matplotlibrl   r   r   r   r~   r   r  r   r   r   r  r	   r   r   r   r   r   r)   r  r+   r  r  rK   r   r   <module>r     sh   
   2 2 2 E
%s
L5;; s
Ll+D ++D ++D +r   