HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyc
�
/&XLc@s�dZddlZddlmZmZddlmZddlmZddlm	Z	ddl
Zddlm
Z
mZmZddlZddlZddlZd�Zd	�Zd
efd��YZdd
�ZddljZejje�dS(sZ
Module containing Axes3D, an object which can plot 3D objects on a
2D matplotlib figure.
i����N(tAxestrcParams(tcbook(tBbox(tcollections(t	NormalizetcolorConvertertLightSourcecCsGt|�dks$t|�dkr;d|}|j|�Sd|SdS(s:Used to generate more comprehensible numbers in status barg��@g����MbP?s%1.4es%4.3fN(tabst_formatSciNotation(tselftvaluets((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytsensible_format_datas$

cCs+ttjddgddgg��}|S(Nii(Rtnptarray(tbox((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt	unit_bbox s'tAxes3DcBsxeZdZdZd>d�Zd�Zd�Zd>d�Zd>d>d�Z	d>d>d�Z
d�Zd	�Zd
�Z
d>d>d�Zeeed�Zd
�Zd>d>d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd>d>d�Zd�Zddd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd>d&�Z(d>d'�Z)d>d(�Z*ed)�Z+d>d*�Z,e,Z-e.j,Z/d+�Z0e0Z1d,�Z2d-�Z3d.�Z4d/�Z5d0�Z6d1d2�Z7d3�Z8e8Z9d4�Z:e:Z;d5d6d7�Z<d5d6d8�Z=e=Z>d5d6d9�Z?d:d;d<�Z@d>d=�ZARS(?s
    3D axes object.
    t3dcOs.|dkr!ddddg}n||_g|_|jdd�|_|jdd�|_t�|_t�|_t�|_	t�|_
|j|j|j�d|_t
j||j|dtd	gd
g||�d|_d|_|j�|j�|j�|jjd�|jj|�dS(
s|
        Build an :class:`Axes3D` instance in
        :class:`~matplotlib.figure.Figure` *fig* with
        *rect=[left, bottom, width, height]* in
        :class:`~matplotlib.figure.Figure` coordinates

        Optional keyword arguments:

          ================   =========================================
          Keyword            Description
          ================   =========================================
          *azim*             Azimuthal viewing angle (default -60)
          *elev*             Elevation viewing angle (default 30)
          ================   =========================================
        gg�?tazimi���televiitframeontxtickstyticksiN(tNonetfigt_cidstpoptinitial_azimtinitial_elevRt
xy_viewLimt
zz_viewLimt
xy_dataLimt
zz_dataLimt	view_initt_readyRt__init__tTruetMt
mouse_inittcreate_axestset_top_viewt	axesPatcht
set_linewidthtadd_axes(R
Rtrecttargstkwargs((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR%*s,					


cCsld|j}d|j}d|j}d|j}tj|||dd�tj|||dd�dS(Ngffffff�?g�������?tauto(tdistRtset_xlimRtset_ylim(R
txdwltxdwtydwltydw((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR*Ys



cCsytjd|jj|jj|�|_tjd|jj|jj|�|_tj	d|j
j|jj|�|_dS(Ntxtytz(
taxis3dtXAxisRt	intervalxR!tw_xaxistYAxist	intervalytw_yaxistZAxisR R"tw_zaxis(R
((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR)dscCs�|p|j�\}}}}}}||||||||g||||||||g||||||||g}}	}
t||	|
�S(N(t
get_w_limstzip(R
tvalstminxtmaxxtminytmaxytminztmaxztxstystzs((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt	unit_cubels
$&cCs=|dkr|j}n|j|�}tj||�}|S(N(RR'RQtproj3dtproj_points(R
RGR'txyzsttcube((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt
tunit_cubess
cCs�|j||�}|d|df|d|df|d|df|d|df|d|df|d|df|d|df|d|df|d|df|d|df|d|df|d|dfg}|S(	Niiiiiiii(RV(R
RGR'ttctedges((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyttunit_edgeszsc	Cs�|jj|�t|_|j�|_|j|_|j|_|j|_|j|_g|j	D]}|j
|�|f^qb}|j�|j�x)t
|�D]\}\}}||_q�Wg|jD]}|j
|�|f^q�}|j�|j�x)t
|�D]\}\}}||_qW|j|j|jf}x|D]}|j|�qMWx|D]}|j|�qkWtj||�dS(N(R+tdrawtFalset_frameontget_projR'tvvecteyetget_axis_positionRtdo_3d_projectiontsorttreverset	enumeratetzordertpatchesR?RBRDt	draw_paneR(	R
trenderertcoltzlisttiR;tpatchtaxestax((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyRZ�s2	(


(




cCs�|j�}|j||j�}|dd|ddk}|dd|ddk}|dd|ddk}|||fS(Niiii(RERVR'(R
RGRWtxhightyhightzhigh((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR`�scKsdS(N((R
txysR0((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytupdate_datalim�scCs�ttj|||f�\}}}y8|j�|j�}}|dk	r[|j�}nWntk
rr�nX|jjtj||g�j	|�|dk	r�|j
jtj||g�j	|�n|j�dS(N(tmapRtasarraytflattenRtAttributeErrorR!tupdate_from_data_xyRtTR"tautoscale_view(R
tXtYtZthad_dataR9R:R;((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytauto_scale_xyz�s$
&)cKs|j�|jsdS|j�s'dS|rC|j|jj�n|r_|j|jj�n|r{|j|j	j�ndS(N(
R*R$tget_autoscale_ont
set_xlim3dR!R>t
set_ylim3dRAt
set_zlim3dR"(R
tscalextscaleytscaleztkw((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyRz�s
	cCsL|j�\}}|j�\}}|j�\}}||||||fS(sGet 3d world limits.(t
get_xlim3dt
get_ylim3dt
get_zlim3d(R
RHRIRJRKRLRM((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyRE�scOsW|dkr*tj|�r*|\}}n||krM|d8}|d7}n||fS(Ng�?(RRtiterable(R
txmintxmaxR/R0((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt_determine_lims�s

cOs"|j||�}||j_|S(sSet 3D x limits.(R�RR>(R
R/R0tlims((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scOs"|j||�}||j_|S(sSet 3D y limits.(R�RRA(R
R/R0R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scOs"|j||�}||j_|S(sSet 3D z limits.(R�R R>(R
R/R0R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scCs
|jjS(sGet 3D x limits.(RR>(R
((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR�scCs
|jjS(sGet 3D y limits.(RRA(R
((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR�scCs
|jjS(sGet 3D z limits.(R R>(R
((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR�scOsdS(N(R(R
R/R0((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytclabelscCs
dG|GHdS(Ntnumsteps((R
R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytpanyscCs
dG|GHdS(NR�((R
R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytpanpyscCsUd|_|dkr$|j|_n	||_|dkrH|j|_n	||_dS(s{
        Set the elevation and azimuth of the axes.

        This can be used to rotate the axes programatically.

        'elev' stores the elevation angle in the z plane.
        'azim' stores the azimuth angle in the x,y plane.

        if elev or azim are None (default), then the initial value
        is used which was specified in the :class:`Axes3D` constructor.
        i
N(R2RRRRR(R
RR((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR#s
		cCs�tj|jdtj|jd}}|j�\}}|j�\}}|j�\}}tj||||||�}	tj	dddg�}
|
dtj
|�tj
|�|j}|
dtj|�tj
|�|j}|
dtj|�|j}
tj	|||
f�}||_
|
||_|jtj|j�|_t|�tjdkr~tj	d�}ntj	d�}|j|j}}tj||
|�}tj||�}tj||	�}tj||�}|S(	sCreate the projection matrix from the current viewing
        position.

        elev stores the elevation angle in the z plane
        azim stores the azimuth angle in the x,y plane

        dist is the distance of the eye viewing point from the object
        point.

        i�g�?iiii����(iii����(iii(RtpiRRR�R�R�RRtworld_transformationRtcosR2tsinR_R^tmodRtview_transformationtpersp_transformationtdot(R
trelevtrazimR�R�tymintymaxtzmintzmaxtworldMtRtxptyptzptEtVtzfronttzbacktviewMtperspMtM0R'((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR].s0)++	
iicCs�d|_|jj}|dkru|jd|j�}|jd|j�}|jd|j�}|||g|_n
t	j
d�tj|�|_
tj|�|_dS(s"Initializes mouse button callbacks to enable 3D rotation of
        the axes.  Also optionally sets the mouse buttons for 3D rotation
        and zooming.

        ============  =======================================================
        Argument      Description
        ============  =======================================================
        *rotate_btn*  The integer or list of integers specifying which mouse
                      button or buttons to use for 3D rotation of the axes.
                      Default = 1.

        *zoom_btn*    The integer or list of integers specifying which mouse
                      button or buttons to use to zoom the 3D axes.
                      Default = 3.
        ============  =======================================================

        tmotion_notify_eventtbutton_press_eventtbutton_release_eventscAxes3D.figure.canvas is 'None', mouse rotation disabled.  Set canvas then call Axes3D.mouse_init().N(Rtbutton_pressedtfiguretcanvastmpl_connectt_on_movet
_button_presst_button_releaseRtwarningstwarnRt
atleast_1dt_rotate_btnt	_zoom_btn(R
t
rotate_btntzoom_btntcanvtc1tc2tc3((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR(]s	
cCs,|j�tj|�|jtd�dS(s7Clear axes and disable mouse button callbacks.
        saxes3d.gridN(tdisable_mouse_rotationRtclatgridR(R
((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR�|s

cCs4x$|jD]}|jjj|�q
Wg|_dS(s(Disable mouse button callbacks.
        N(RR�R�tmpl_disconnect(R
tcid((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scCs;|j|kr7|j|_|j|j|_|_ndS(N(tinaxestbuttonR�txdatatydatatsxtsy(R
tevent((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scCs
d|_dS(N(RR�(R
R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scCsBy|j|�SWn*tk
r=|jj�}t||�SXdS(s�
        Return x string formatted.  This function will use the attribute
        self.fmt_xdata if it is callable, else will fall back on the xaxis
        major formatter
        N(t	fmt_xdatat	TypeErrorR?tget_major_formatterR
(R
R9tfmt((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytformat_xdata�s

cCsBy|j|�SWn*tk
r=|jj�}t||�SXdS(s�
        Return y string formatted.  This function will use the attribute
        self.fmt_ydata if it is callable, else will fall back on the yaxis
        major formatter
        N(t	fmt_ydataR�RBR�R
(R
R:R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytformat_ydata�s

cCsHy|j|�SWn0ttfk
rC|jj�}t||�SXdS(s�
        Return z string formatted.  This function will use the attribute
        self.fmt_zdata if it is callable, else will fall back on the yaxis
        major formatter
        N(t	fmt_zdataRwR�RDR�R
(R
R;R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytformat_zdata�s
cCs�|jdkrdS|j|jkr9d|j|jfS||f}|j�}gt|�D]-\}\}}tj	|||�|f^q^}|j
�|dd}	||	\}}|\}
}}|\}
}}tj|
|||�}tj|
|||�}||}||||||}tj
||||j�\}}}|j|�}|j|�}|j|�}d|||fS(s�
        Given the 2D view coordinates attempt to guess a 3D coordinate.
        Looks for the nearest edge to the point and then assumes that
        the point is at the same z location as the nearest point on the edge.
        ts!azimuth=%d deg, elevation=%d deg iisx=%s, y=%s, z=%sN(R'RR�R�RRRYRdRRtline2d_seg_distRbRthypott
inv_transformR�R�(R
txdtydtpRXRktp0tp1tldiststedgeitx0ty0tz0tx1ty1tz1td0td1tdtR;R9R:RNRORP((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytformat_coord�s,=

$cCs|js
dS|jdkr dS|j|j}}|dkrCdS||j||j}}|j�\}}|j�\}}	||}
|	|}|||_|_|j|j	kr6|dkr�|dkr�dSt
j|j||d�|_t
j|j
||
d�|_
|j�|jjj�n�|j|jkr|j�\}}
}}}}d|||}|
||}|||}|||}|j|||
|�|j||||�|j||||�|j�|jjj�ndS(s�Mouse moving

        button-1 rotates by default.  Can be set explicitly in mouse_init().
        button-3 zooms by default.  Can be set explicitly in mouse_init().
        Nii�i(R�R'RR�R�R�R�tget_xlimtget_ylimR�tart3dt
norm_angleRRR]R�R�RZR�RER�R�R�(R
R�R9R:tdxtdyR�R�R�R�twthRHRIRJRKRLRMtdftdz((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��s>	

!!
	
cKsI|jj�}|j|�|dk	r8|j|�n|j|�|S(sSet xlabel.N(R?t	get_labeltset_textRtupdate(R
txlabeltfontdictR0tlabel((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt
set_xlabels

cKsI|jj�}|j|�|dk	r8|j|�n|j|�|S(sSet ylabel.N(RBR�R�RR�(R
tylabelR�R0R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt
set_ylabel#s

cKsI|jj�}|j|�|dk	r8|j|�n|j|�|S(sSet zlabel.N(RDR�R�RR�(R
tzlabelR�R0R�((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt
set_zlabel-s

cKs
||_dS(s&
        Set / unset 3D grid.
        N(t
_draw_grid(R
tonR0((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR�7scKs2tj|||||�}tj|||�|S(s�
        Add text to the plot. kwargs will be passed on to Axes.text,
        except for the `zdir` keyword, which sets the direction to be
        used as the z direction.
        (RttextR�t
text_2d_to_3d(R
R9R:R;RtzdirR0R((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR=scOso|j�}|jdd�}|jdd�}d}t|�dkr�tj|d�r�t|�t|d�kr�tj|dd�r�||}|d7}n<t|�dkr�tj|d�r�||}|d7}ntj|�stjt|��|}ntj	||||||�}	x'|	D]}
t
j|
d|d|�q2W|j||||�|	S(so
        Plot 2D or 3D data.

        ==========  ================================================
        Argument    Description
        ==========  ================================================
        *xs*, *ys*  X, y coordinates of vertices

        *zs*        z value(s), either one for all points or one for
                    each point.
        *zdir*      Which direction to use as z ('x', 'y' or 'z')
                    when plotting a 2d set.
        ==========  ================================================

        Other arguments are passed on to
        :func:`~matplotlib.axes.Axes.plot`
        RPiRR;i(
thas_dataRtlenRR�t	is_scalarRtonesRtplotR�t
line_2d_to_3dR(R
RNROR/R0R~RPRtargsitlinestline((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyRJs$%3

%


c,Osu|j�}|j\}}tj|�tj|�tj|�}	}
}|jdd�}|jdd�}
d|kr�|jd�}n*tjtj|jdd���}d}|j	dd�}|jdd�}|jd	d�}|jd
d�}|j	dd�}|jd|dk�}|jd
d�}|rp|dk	rp|dk	rp|j
|||�}ng}g}g}x�tjd|d|�D]�}x�tjd|d|
�D]�}g}g}x\||	f||
f||fgD]9\}}|||t|||
d�!} |t|d||
�|t|||d�!}!|t|d||�|t|||
d�d�}"|"ddd�}"|||t|||d�d�}#|#ddd�}#|j
| d| d|"d|"dg�tj| |!|"|#f�}$|j
|$�q�Wt|�}tjg�}%g}&d}'x>|D]6}(|(|%kr[|&j
|(�|(}%|'|(d7}'q[q[W|j
|&�|dk	r�|j
|||�n|j
|'t|&��|dkr�|r�tj|&d�tj|&d�})tj|&d�tj|&d�}*|j
tj|)|*��q�q�Wq�Wtj|||�}+|dk	r�|r�|j||�}n|+j|�|+j|�n�|r tj|�}|+j|�|dk	s�|dk	r|+j||�n|dk	rN|+j|�qNn.|r;|j||�}n|}|+j|�|j|+�|j||||�|+S(s@
        Create a surface plot.

        By default it will be colored in shades of a solid color,
        but it also supports color mapping by supplying the *cmap*
        argument.

        ============= ================================================
        Argument      Description
        ============= ================================================
        *X*, *Y*, *Z* Data values as numpy.arrays
        *rstride*     Array row stride (step size)
        *cstride*     Array column stride (step size)
        *color*       Color of the surface patches
        *cmap*        A colormap for the surface patches.
        *facecolors*  Face colors for the individual patches
        *norm*        An instance of Normalize to map values to colors
        *vmin*        Minimum value to map
        *vmax*        Maximum value to map
        *shade*       Whether to shade the facecolors
        ============= ================================================

        Other arguments are passed on to
        :func:`~mpl_toolkits.mplot3d.art3d.Poly3DCollection.__init__`
        trstridei
tcstridet
facecolorstcolortbtcmaptnormtvmintvmaxt	linewidthtshadetlightsourceiiNi����gi(RtshapeRt	transposeRRRtto_rgbaRtgett_shade_colors_lightsourcetarangetmintappendtconcatenateRFRtcrossR�tPoly3DCollectiont
_shade_colorstset_facecolorstset_edgecolorst	set_arraytset_climtset_normtadd_collectionR(,R
R{R|R}R/R0R~trowstcolsttXttYttZRRtfcolorsRRRRRRRRtpolystnormalstcolsettrstcstpstcornerstattatztoptzlefttzbasetzrightR;tlastptps2tavgzsumR�tv1tv2tpolyc((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytplot_surfacezs�/$  ."39()


$$$



cCs|g}xo|D]g}tj|d�tj|d�}tj|d�tj|d�}|jtj||��q
W|S(s�
        Generate normals for polygons by using the first three points.
        This normal of course might not make sense for polygons with
        more than three points not lying in a plane.
        iii(RRR#R%(R
tpolygonsR5tvertsRDRE((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt_generate_normals�s
$$c
CsVg}xC|D];}|tj|�}|jtj|dddg��q
Wtj|�}tj|�}t||�dkrFtt	||�t
||��}tj|�r�|j
�}d|d<g|D]}|d||�d^q�}qRgt||�D]6\}	}tjtj|	��d||�d^q}n|j
�}|S(s�
        Shade *color* using normal vectors given by *normals*.
        *color* can also be an array of the same length as *normals*.
        i����g�?iii(RRR�R#RR�RtisnanRRR"tmaxR�tiscolortcopyRFRR(
R
RR5RtntmaskRtvtcolorstc((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR's 
&#
.LcCs4|dkr$tdddd�}n|j||�S(Ntazdegi�taltdegi7(RRR(R
tdataRR((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR scOs0|jdd�}|jdd�}|j�}|j\}	}
tj|�tj|�tj|�}}}
gtd|	|�D]}|^q�|	dg}gtd|
|�D]}|^q�|
dg}g|D]}||^q�}g|D]}||^q�}g|D]}||^q}g|D]}||^q,}g|D]}||^qI}g|D]}|
|^qf}gt|||�D]!\}}}t|||�^q�}|gt|||�D]!\}}}t|||�^q�7}tj|||�}|j	|�|j
||||�|S(sl
        Plot a 3D wireframe.

        ==========  ================================================
        Argument    Description
        ==========  ================================================
        *X*, *Y*,   Data values as numpy.arrays
        *Z*
        *rstride*   Array row stride (step size)
        *cstride*   Array column stride (step size)
        ==========  ================================================

        Keyword arguments are passed on to
        :func:`matplotlib.collections.LineCollection.__init__`.

        Returns a :class:`~mpl_toolkits.mplot3d.art3d.Line3DCollection`
        RiRi(RRRRRtrangeRFR�tLine3DCollectionR-R(R
R{R|R}R/R0RRR~R.R/R0R1R2RktriitciitxlinestylinestzlinesttxlinesttylinesttzlinestxltyltzlRtlinec((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytplot_wireframe#s*/0078
icCs�|j}|j}|d|dd}x2t||�D]!\}}tj|j�||�}tj|j�||�}	|j�d}
g}g}tt|d�|�}
|
dkr�t|d�dkr8d}
q�q8nt|d�d|
d}x�t	t
t|
��d�D]�}t
t||��}t
t|d|��}|j|d||d||	d||	d|g�tj
|d|�tj
|d|�}tj
|d|�tj
|	d|�}|jtj||��qW|j|
|�}|j|
|�}tj|d|d|�}|j|�|j|�q8Wx|D]}|jj|�qdWdS(s4
        Extend a contour in 3D by creating
        iiiRt
edgecolorsN(tlevelsRRFR�tpaths_to_3d_segmentst	get_pathst	get_colortroundRRWtintR#RRR%R'R&t
set_sort_zpostadd_collection3dtremove(R
tcsettstrideRgtcollsR�R;RdttopvertstbotvertsRt	polyvertsR5tnstepststepsizeRkti1ti2RDRERRtcolors2tpolycolRi((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt_3d_extend_contourSsD			#,,	

cOs!|jdt�}|jdd�}|jdd�}|jdd�}	|j�}
tj||||�\}}}
tj||||
||�}d|}|r�|j||�nQxNt	|j
|j�D]7\}}|	dk	r�|	}ntj||d|�q�W|j
||||
�|S(	sI
        Create a 3D contour plot.

        ==========  ================================================
        Argument    Description
        ==========  ================================================
        *X*, *Y*,   Data values as numpy.arrays
        *Z*
        *extend3d*  Whether to extend contour in 3D (default: False)
        *stride*    Stride (step size) for extending contour
        *zdir*      The direction to use: x, y or z (default)
        *offset*    If specified plot a projection of the contour
                    lines on this position in plane normal to zdir
        ==========  ================================================

        The positional and other keyword arguments are passed on to
        :func:`~matplotlib.axes.Axes.contour`

        Returns a :class:`~matplotlib.axes.Axes.contour`
        textend3dRqiRR;toffsett-N(RR[RRR�trotate_axesRtcontourR|RFRgRtline_collection_2d_to_3dR(R
R{R|R}R/R0R}RqRR~R~tjXtjYtjZRpR;Rd((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��s !
"	c
Os�|j�}tj||||||�}|j}|j}	xDt||d|	�D],\}
}}tj||
�|j|
�qSW|j	||||�|S(s�
        Plot filled 3D contours.

        *X*, *Y*, *Z*: data points.

        The positional and keyword arguments are passed on to
        :func:`~matplotlib.axes.Axes.contourf`

        Returns a :class:`~matplotlib.axes.Axes.contourf`
        i(
RRtcontourfRgRRFR�tpoly_collection_2d_to_3dRmR(
R
R{R|R}R/R0R~RpRgRrR�tz2Rd((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��s		&iR;cCs�t|�tjkrDtj|d|d|�|jt|��n�t|�tjkr�tj|d|d|�|jt|��nDt|�tj	kr�tj
|d|d|�|jt|��ntj||�dS(s)
        Add a 3d collection object to the plot.

        2D collection types are converted to a 3D version by
        modifying the object and adding z coordinate information.

        Supported are:
            - PolyCollection
            - LineColleciton
            - PatchCollection
        RPRN(
ttypeRtPolyCollectionR�R�RmR"tLineCollectionR�tPatchCollectiontpatch_collection_2d_to_3dRR-(R
RiRPR((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyRn�s
c
Os�|j�}tj|||||�}tj|�sXt}	tjt|��|}nt	}	t
j|d|d|�|	s�|j||||�n|S(s
        Create a scatter plot.

        ==========  ================================================
        Argument    Description
        ==========  ================================================
        *xs*, *ys*  Positions of data points.
        *zs*        Either an array of the same length as *xs* and
                    *ys* or a single value to place all points in
                    the same plane. Default is 0.
        *zdir*      Which direction to use as z ('x', 'y' or 'z')
                    when plotting a 2d set.
        ==========  ================================================

        Keyword arguments are passed on to
        :func:`~matplotlib.axes.Axes.scatter`.

        Returns a :class:`~mpl_toolkits.mplot3d.art3d.Patch3DCollection`
        RPR(
RRtscatterRR�R&RR
RR[R�R�R(
R
RNRORPRR/R0R~Rftis_2d((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��scOs4|j�}tj|||||�}tj|�sRtjt|��|}ng}	g}
x�t||�D]u\}}t	j
|�}
|	|
j�7}	|
|gt|
�7}
t	j|||�d|krn|j
|d�qnqnWt|	�\}}t	j|||
|�\}}}
|j|||
|�|S(s
        Add 2D bar(s).

        ==========  ================================================
        Argument    Description
        ==========  ================================================
        *left*      The x coordinates of the left sides of the bars.
        *height*    The height of the bars.
        *zs*        Z coordinate of bars, if one value is specified
                    they will all be placed at the same z.
        *zdir*      Which direction to use as z ('x', 'y' or 'z')
                    when plotting a 2d set.
        ==========  ================================================

        Keyword arguments are passed onto :func:`~matplotlib.axes.Axes.bar`.

        Returns a :class:`~mpl_toolkits.mplot3d.art3d.Patch3DCollection`
        talpha(RRtbarRR�RR
RRFR�tget_patch_vertsttolisttpatch_2d_to_3dt	set_alphatjuggle_axesR(R
tlefttheightRPRR/R0R~RfRItverts_zsR�R;tvsRNRO((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR�s"!Rtaveragec	Os|j�}tj|�s'|g}ntj|�sB|g}ntj|�s]|g}ntj|�sx|g}ntj|�s�|g}ntj|�s�|g}nt|�dkr�|t|�}nt|�dkr�|t|�}nt|�dkr|t|�}nt|�t|�ksMt|�t|�kr]tjd�nd	\}}
}d
\}}}g}xjt||||||�D]M\}}}}}}t||�}t|||�}t||
�}
t|||�}t||�}t|||�}|j	|||f||||f|||||f||||ff||||f|||||f||||||f|||||ff|||f||||f|||||f||||ff||||f|||||f||||||f|||||ff|||f||||f|||||f||||ff||||f|||||f||||||f|||||ffg�q�Wg}|dkrdgt|�}n�t|�t|�krVxi|D]}|j	|gd�q5WnDttj
|��}t|�t|�kr�|dt|�9}n|j|�}|j||�}tj|d|d||	|
�}|j|�|j||f|
|f||f|�dS(sr
        Generate a 3D bar, or multiple bars.

        When generating multiple bars, x, y, z have to be arrays.
        dx, dy, dz can be arrays or scalars.

        *color* can be:

         - A single color value, to color all bars the same color.

         - An array of colors of length N bars, to color each bar
           independently.

         - An array of colors of length 6, to color the faces of the
           bars similarly.

         - An array of colors of length 6 * N bars, to color each face
           independently.

         When coloring the faces of the boxes specifically, this is
         the order of the coloring:

          1. -Z (bottom of box)
          2. +Z (top of box)
          3. -Y
          4. +Y
          5. -X
          6. +X

        Keyword arguments are passed onto
        :func:`~mpl_toolkits.mplot3d.art3d.Poly3DCollection`
        is$x, y, and z must be the same length.g@��x�Dg@��x��itzsortt	facecolorN(g@��x�Dg@��x�Dg@��x�D(g@��x��g@��x��g@��x��(RRR�RR�R�RFR"RLtextendRtlistRt
to_rgba_arrayRJR'R�R&R-R(R
R9R:R;R�R�R�RR�R/R0R~RHRJRLRIRKRMR4txityitzitdxitdyitdziRRSR5tsfacecolorsRi((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pytbar3d6sz"04'$/'$/'$:

cKsCtj||||�|jj�\}}|jjd|�dS(Ngq=
ףp�?(Rt	set_titlettitletget_positiontset_y(R
R�R�R0R9R:((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR��sN(Bt__name__t
__module__t__doc__tnameRR%R*R)RQRVRYRZR`RsRR&RzRER�R�R�R�R�R�R�R�R�R�R#R]R(R�R�R�R�R�R�R�R�R�R�R�RR�Rttext3DRttext2DRtplot3DRGRJR'R ReR|R�t	contour3DR�t
contourf3DRnR�t	scatter3DR�R�R�(((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyR$s|/			$													/									(	9



		.	y				00	,	%+pg�������?c	Cs�ddlm}tjdd|�}}tj||�\}}|||dddd�}|||ddd	d	�}||}|d
}|d
}|d}|||fS(s6
    Return a tuple X, Y, Z with a test data set.
    i����(tbivariate_normalg�g@g�?gg�?g�?ii
i�(tmatplotlib.mlabR�RR!tmeshgrid(	tdeltaR�R9R:R{R|tZ1tZ2R}((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt
get_test_data�s



(R�R�tmatplotlib.axesRRt
matplotlibRtmatplotlib.transformsRRtnumpyRtmatplotlib.colorsRRRR�RRR<R
RRR�tmatplotlib.projectionstprojectionstprojtprojection_registrytregister(((sN/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.pyt<module>
s(		�����