
    gr                         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       X/var/www/dash_apps/app1/venv/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                   |    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d6 fd	Zd6 fd	Zd Zd Zd Zd Zd6dZd Zd Zd Zd  Zd6d!Zd6d"Zd# Zd$ Z d% Z!d& Z"d' Z#d( Z$d) Z%e&jN                  d*        Z(e&jN                  d+        Z)d6d,d-d.Z*  ej                  dd/d0       ed1 d2             Z+  ej                  dd3d0       ed4 d5             Z, xZ-S )7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    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.
        lowerupperbothrL   nonepositionN)r   check_in_listrg   r=   r   s     r   set_ticks_positionzAxis.set_ticks_position   s      	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    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   N)r   r   rf   r   s     r   set_label_positionzAxis.set_label_position   s      	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 : :mpltype:`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   |d   |d   |d   |d   |d   f}| 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 )Nr   r
   r/   r,   TF)r   arrayrA   
get_xbound
get_ybound
get_zboundT_transformed_cubezerosrangemean_PLANESabsfinfofloatepssumwhere)r=   minsmaxsboundsbounds_projmeans_z0means_z1r2   highsequalsverticals              r   _get_coord_infozAxis._get_coord_info  s   XXII  "II  "II  "
  1	 	d a$q'47DGT!Wd1gEii11&9 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:T;--r   c                 .    d||z   z  }d}||z
  |z  }||fS )N      ?g{Gz?rK   )r=   r   r   r   scaler   s         r   _calc_centers_deltaszAxis._calc_centers_deltas-  s/    %
 +&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_points7  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_pointsO  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_tickdirh  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   tcr   infoindexlocplanepxyss              r   active_panezAxis.active_pane  s     $ 4 4 6dB||S	U|u+CLLU+Eu+CLLUQ/Ehhu-!1-.Cx .s   1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=   rendererr  r  s       r   	draw_panezAxis.draw_pane  sd     	H$,,.9##%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                    | j                         }| j                  }	|	d   }
|	d   }| j                         \  }}}}| j                  ||      \  }}| 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   r4   r%   rS   rR   rV   g       @)_update_ticksrj   r   r   r   ri   get_locr   proj_transformrA   Mget_padr   r  r)   r   set_linewidth_majorr  )%r=   r  r   r   r   r   deltas_per_pointposr   r   r   r4   r   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	y/ $ 4 4 6dB33D$? ##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   r.  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   r:  r   r;  r<  r=  rA  rB  r>  r  )r=   r  r   r   r.  r   rD  rE  rT   lxyztlxtlytlzrK  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                  d      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                   j0                        }t#        j2                  |      }| j                   j4                  j                  |dd	d
f   g      | j                   j4                  j                  |dd	df   g      z
  d   \  }}| j6                  j9                  |d   |d
          | j6                  j;                  |       | j=                  |||||||       | j?                  |||||||||	        t'        | j)                  ||| j@                         D ]  \  }}}t-        j.                  ||g| j                   j0                        }t#        j2                  |      }| j                   j4                  j                  |dd	d
f   g      | j                   j4                  j                  |dd	df   g      z
  d   \  }}| jC                  |||||||        |jE                  d       d| _#        y )Naxis3dr  F)rootg      R@0   g      5@r   r/   r
   )$rA   r   rT   r   r   r
  r  r   r   
get_figuredpi_scale_transinverted	transformbboxsizer   labelpadr   r   zipr   rg   r   _proj_trans_pointsr  r   	transAxesr   r#   r  r2  rN  rf   rU  r  r   )r=   r  r   r   r   r   r   r   reltoinches	ax_inchesax_points_estimater  default_offsetr.  r   r   r   r   r  rC  rD  rE  s                         r   r  z	Axis.draw7  sO    $		 3 3

%)YY%8%8"H$,,.9 !% 4 4 6dB33D$? oo5o1AAJJL))$))..*=*=>	 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   r   xyz0r%   r   gridinfos                  r   	draw_gridzAxis.draw_gridx  s   yy##H$,,.9""$u:<<DIE$($8$8$:!D$E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   G1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_transformr]  r  mtransforms_interval_contains_closer   AssertionError_get_ticklabel_bboxesr   get_window_extentrT   rP  Bboxunion)r=   r  rs  
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)alternativerJ   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   rx  c                 "    | j                         S r:   )rx  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  r2  rN  rU  r   allow_rasterizationr  rr  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) *'	#(	$$!.@*0*2*X'
* X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_intervalrx  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   rz  r	   r   r   r   r   r   r)   r  r+   r  r  rK   r   r   <module>r     sh   
   2 2 2 E
%p
L5;; p
Lf+D ++D ++D +r   