
    d                    F   d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZ d dlZd dlmZmZ erXd dlmZ d dlmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlm Z  d dl!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z- d dl.m/Z/  G d d          Z0 G d d          Z1dS )    )annotationsN)HashableIterable)TYPE_CHECKINGAnyLiteralNoReturnoverload)dataarray_plotdataset_plot)Axes)LineCollectionPathCollectionQuadMesh)	Normalize)BarContainer)QuadContourSet)	AxesImage)Quiver)Line3DPoly3DCollection)	ArrayLike)	DataArray)Dataset)AspectOptionsHueStyleOptionsScaleOptions)	FacetGridc            #      F
   e Zd ZU dZded<   dZej        j        ZddZ e	j
        ej        d	
          dd            Z e	j
        ej                  dd            Zedddddddddddddddddddddd1            Zeddddddddddddddddddd2dd5            Zeddddddddddddddddddd6dd7            Z e	j
        ej                  dd9            Zed:ddddd;ddA            Zed:ddddBddC            Zed:ddddDddE            Z e	j
        ej                  ddF            ZeddddddddddddddddddddddddddddddddddG!ddZ            Zeddddddddddddddddddddddddddddddddd[ dd\            Zeddddddddddddddddddddddddddddddddd] dd^            Z e	j
        ej                  d_             Zedddddddddddddddddd`ddddddddddddddda ddf            Zeddddddddddddddddd`dddddddddddddddgddh            Zeddddddddddddddddd`dddddddddddddddiddj            Z e	j
        ej                  ddk            Zedddddddddddddddddd`ddddddddddddddda ddm            Zeddddddddddddddddd`dddddddddddddddgddn            Zeddddddddddddddddd`dddddddddddddddiddo            Z e	j
        ej                  ddp            Zedddddddddddddddddd`ddddddddddddddda ddq            Zeddddddddddddddddd`dddddddddddddddgddr            Zeddddddddddddddddd`dddddddddddddddiddt            Z e	j
        ej                  ddu            Zedddddddddddddddddd`ddddddddddddddda ddw            Zeddddddddddddddddd`dddddddddddddddgddx            Zeddddddddddddddddd`dddddddddddddddiddy            Z e	j
        ej                  ddz            Zedddddddddddddddddd`ddddddddddddddda dd|            Zeddddddddddddddddd`dddddddddddddddgdd}            Zeddddddddddddddddd`dddddddddddddddidd~            Z e	j
        ej                  dd            ZdS )DataArrayPlotAccessorzs
    Enables use of xarray.plot functions as attributes on a DataArray.
    For example, DataArray.plot.imshow
    r   _dar!   darrayreturnNonec                    || _         d S Nr"   )selfr#   s     4lib/python3.11/site-packages/xarray/plot/accessor.py__init__zDataArrayPlotAccessor.__init__(   s        )__doc____annotations__)assignedr   c                0    t          j        | j        fi |S r'   )r   plotr!   )r(   kwargss     r)   __call__zDataArrayPlotAccessor.__call__-   s    "4866v666r+   +tuple[np.ndarray, np.ndarray, BarContainer]c                6    t          j        | j        g|R i |S r'   )r   histr!   r(   argsr1   s      r)   r5   zDataArrayPlotAccessor.hist1   %    "48=d===f===r+   NT)rowcolfigsizeaspectsizeaxhuexy	xincrease	yincreasexscaleyscalexticksyticksxlimylim
add_legend_labelsr7   r9   r:   r;   Iterable[float] | Noner<   r   r=   float | Noner>   Axes | Noner?   Hashable | Noner@   rA   rB   bool | NonerC   rD   r   rE   rF   ArrayLike | NonerG   rH   rI   rJ   boolrK   r1   list[Line3D]c                   d S r'    r(   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r7   r1   s                         r)   linezDataArrayPlotAccessor.line5   	    2 	r+   )r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r   FacetGrid[DataArray]c                   d S r'   rU   rV   s                         r)   rW   zDataArrayPlotAccessor.lineP   rX   r+   )r9   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   c                   d S r'   rU   rV   s                         r)   rW   zDataArrayPlotAccessor.linek   rX   r+   #list[Line3D] | FacetGrid[DataArray]c                6    t          j        | j        g|R i |S r'   )r   rW   r!   r6   s      r)   rW   zDataArrayPlotAccessor.line   r8   r+   pre)where	drawstyledsr9   r:   r_   Literal['pre', 'post', 'mid']r`   
str | Nonera   c                   d S r'   rU   r(   r_   r`   ra   r9   r:   r7   r1   s           r)   stepzDataArrayPlotAccessor.step   	     	r+   )r_   r`   ra   r:   c                   d S r'   rU   re   s           r)   rf   zDataArrayPlotAccessor.step   rg   r+   )r_   r`   ra   r9   c                   d S r'   rU   re   s           r)   rf   zDataArrayPlotAccessor.step   rg   r+   c                6    t          j        | j        g|R i |S r'   )r   rf   r!   r6   s      r)   rf   zDataArrayPlotAccessor.step   r8   r+   !r@   rA   zr?   	hue_style
markersize	linewidthr;   r=   r<   r>   r9   r:   col_wraprB   rC   rJ   add_colorbar
add_labels	add_titlesubplot_kwsrD   rE   rF   rG   rH   rI   cmapvminvmaxnormextendlevelsrl   rm   r   rn   ro   rp   
int | Nonerq   rr   bool | Iterable[bool]rs   rt   dict[str, Any] | Nonerv   rw   rx   Normalize | Noner   c       !            d S r'   rU   $r(   r@   rA   rl   r?   rm   rn   ro   r;   r=   r<   r>   r9   r:   rp   rB   rC   rJ   rq   rr   rs   rt   rD   rE   rF   rG   rH   rI   ru   rv   rw   rx   ry   rz   r7   r1   s$                                       r)   scatterzDataArrayPlotAccessor.scatter   
    N 	r+    r@   rA   rl   r?   rm   rn   ro   r;   r=   r<   r>   r9   rp   rB   rC   rJ   rq   rr   rs   rt   rD   rE   rF   rG   rH   rI   ru   rv   rw   rx   ry   rz   c       !            d S r'   rU   r   s$                                       r)   r   zDataArrayPlotAccessor.scatter   r   r+    r@   rA   rl   r?   rm   rn   ro   r;   r=   r<   r>   r:   rp   rB   rC   rJ   rq   rr   rs   rt   rD   rE   rF   rG   rH   rI   ru   rv   rw   rx   ry   rz   c       !            d S r'   rU   r   s$                                       r)   r   zDataArrayPlotAccessor.scatter  r   r+   c                6    t          j        | j        g|R i |S r'   )r   r   r!   r6   s      r)   r   zDataArrayPlotAccessor.scatter0  %    %dh@@@@@@@r+   F) r@   rA   r;   r=   r<   r>   r9   r:   rp   rB   rC   rq   rr   rv   rw   ru   centerrobustry   rz   infer_intervalscolorsrt   cbar_axcbar_kwargsrD   rE   rF   rG   rH   rI   rx   r   r   r   r   c                    d S r'   rU   #r(   r@   rA   r;   r=   r<   r>   r9   r:   rp   rB   rC   rq   rr   rv   rw   ru   r   r   ry   rz   r   r   rt   r   r   rD   rE   rF   rG   rH   rI   rx   r7   r1   s#                                      r)   imshowzDataArrayPlotAccessor.imshow4  
    L 	r+   )r@   rA   r;   r=   r<   r>   r9   rp   rB   rC   rq   rr   rv   rw   ru   r   r   ry   rz   r   r   rt   r   r   rD   rE   rF   rG   rH   rI   rx   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.imshow\  r   r+   )r@   rA   r;   r=   r<   r>   r:   rp   rB   rC   rq   rr   rv   rw   ru   r   r   ry   rz   r   r   rt   r   r   rD   rE   rF   rG   rH   rI   rx   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.imshow  r   r+   c                6    t          j        | j        g|R i |S r'   )r   r   r!   r6   s      r)   r   zDataArrayPlotAccessor.imshow  s%    $TX???????r+   r   c                    d S r'   rU   r   s#                                      r)   contourzDataArrayPlotAccessor.contour  r   r+   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.contour  r   r+   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.contour   r   r+   c                6    t          j        | j        g|R i |S r'   )r   r   r!   r6   s      r)   r   zDataArrayPlotAccessor.contour(  r   r+   c                    d S r'   rU   r   s#                                      r)   contourfzDataArrayPlotAccessor.contourf,  r   r+   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.contourfT  r   r+   r   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.contourf|  r   r+   c                6    t          j        | j        g|R i |S r'   )r   r   r!   r6   s      r)   r   zDataArrayPlotAccessor.contourf  s%    &txA$AAA&AAAr+   r   c                    d S r'   rU   r   s#                                      r)   
pcolormeshz DataArrayPlotAccessor.pcolormesh  r   r+   c                    d S r'   rU   r   s#                                      r)   r   z DataArrayPlotAccessor.pcolormesh  r   r+   c                    d S r'   rU   r   s#                                      r)   r   z DataArrayPlotAccessor.pcolormesh  r   r+   c                6    t          j        | j        g|R i |S r'   )r   r   r!   r6   s      r)   r   z DataArrayPlotAccessor.pcolormesh   s%    (CDCCCFCCCr+   r   c                    d S r'   rU   r   s#                                      r)   surfacezDataArrayPlotAccessor.surface$  r   r+   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.surfaceL  r   r+   c                    d S r'   rU   r   s#                                      r)   r   zDataArrayPlotAccessor.surfacet  r   r+   c                6    t          j        | j        g|R i |S r'   )r   r   r!   r6   s      r)   r   zDataArrayPlotAccessor.surface  r   r+   )r#   r   r$   r%   )r$   r   )r$   r3   ),r7   r   r9   r%   r:   r%   r;   rL   r<   r   r=   rM   r>   rN   r?   rO   r@   rO   rA   rO   rB   rP   rC   rP   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rJ   rR   rK   rR   r1   r   r$   rS   ),r7   r   r9   r   r:   rO   r;   rL   r<   r   r=   rM   r>   rN   r?   rO   r@   rO   rA   rO   rB   rP   rC   rP   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rJ   rR   rK   rR   r1   r   r$   rY   ),r7   r   r9   rO   r:   r   r;   rL   r<   r   r=   rM   r>   rN   r?   rO   r@   rO   rA   rO   rB   rP   rC   rP   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rJ   rR   rK   rR   r1   r   r$   rY   )r$   r\   )r7   r   r_   rb   r`   rc   ra   rc   r9   r%   r:   r%   r1   r   r$   rS   )r7   r   r_   rb   r`   rc   ra   rc   r9   r   r:   rO   r1   r   r$   rY   )r7   r   r_   rb   r`   rc   ra   rc   r9   rO   r:   r   r1   r   r$   rY   )@r7   r   r@   rO   rA   rO   rl   rO   r?   rO   rm   r   rn   rO   ro   rO   r;   rL   r=   rM   r<   rM   r>   rN   r9   r%   r:   r%   rp   r{   rB   rP   rC   rP   rJ   rP   rq   rP   rr   r|   rs   rR   rt   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rv   rM   rw   rM   rx   r~   r$   r   )@r7   r   r@   rO   rA   rO   rl   rO   r?   rO   rm   r   rn   rO   ro   rO   r;   rL   r=   rM   r<   rM   r>   rN   r9   rO   r:   r   rp   r{   rB   rP   rC   rP   rJ   rP   rq   rP   rr   r|   rs   rR   rt   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rv   rM   rw   rM   rx   r~   r$   rY   )@r7   r   r@   rO   rA   rO   rl   rO   r?   rO   rm   r   rn   rO   ro   rO   r;   rL   r=   rM   r<   rM   r>   rN   r9   r   r:   rO   rp   r{   rB   rP   rC   rP   rJ   rP   rq   rP   rr   r|   rs   rR   rt   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rv   rM   rw   rM   rx   r~   r$   rY   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   r%   r:   r%   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   r   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   rO   r:   r   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   rY   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   r   r:   rO   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   rY   )r$   r   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   r%   r:   r%   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   r   )r$   r   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   r   r:   rO   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   r   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   r%   r:   r%   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   r   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   rO   r:   r   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   r   )r$   r   ):r7   r   r@   rO   rA   rO   r;   rL   r=   rM   r<   r   r>   rN   r9   r%   r:   r%   rp   r{   rB   rP   rC   rP   rq   rP   rr   rR   rv   rM   rw   rM   r   rR   rt   r}   r   rN   r   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rx   r~   r1   r   r$   r   )r$   r   )__name__
__module____qualname__r,   r-   	__slots__r   r0   r*   	functoolswrapsr2   r5   r
   rW   rf   r   r   r   r   r   r   rU   r+   r)   r    r       s         
 NNNI!)G   
 Y_^(3QRRR7 7 7 SR7 Y_^())> > > *)>  *. $!#!!!%!%###'#'!%!%+     X4 
  $*. $!#!!!%!%###'#'!%!%+     X4   $*. $!#!!!%!%###'#'!%!%+     X4 Y_^())> > > *)>  05 $
 
 
 
 
 X
  05 $#
 
 
 
 
 X
  05 $#
 
 
 
 
 X
 Y_^())> > > *)>  "!!#%)&*%)*.!##!%!%"&$(,0-1###'#'!%!%!!!%G& & & & & X&P  "!!#%)&*%)*.!###!%!%"&$(,0-1###'#'!%!%!!!%G& & & & & X&P  "!!#%)&*%)*.!###!%!%"&$(,0-1###'#'!%!%!!!%G& & & & & X&P Y_^+,,A A -,A  "!*.! $#!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N Y_^*++@ @ @ ,+@  "!*.! $#!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N Y_^+,,A A A -,A  "!*.! $#!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N Y_^,--B B B .-B  "!*.! $#!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N Y_^.//D D D 0/D  "!*.! $#!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N  "!*.! $##!%!%$(!!-1#-1###'#'!%!%!%E% % % % % X%N Y_^+,,A A A -,A A Ar+   r    c            #         e Zd ZU dZded<   dZd_dZd`d
Zedddddddddddddddddddddddddddddddddd!dad=            Z	eddddddddddddddddddddddddddddddddd> dbdA            Z	edddddddddddddddddddddddddddddddddB dcdC            Z	 e
j        ej	                  dddE            Z	eddddddddddddddddddddddddddddddFdedQ            ZedddddddddddddddddddddddddddddRdfdT            ZedddddddddddddddddddddddddddddUdgdV            Z e
j        ej                  dhdX            ZeddddddddddddddddddddddddddddddFdidZ            ZedddddddddddddddddddddddddddddRdfd[            ZedddddddddddddddddddddddddddddUdgd\            Z e
j        ej                  djd^            ZdS )kDatasetPlotAccessorzp
    Enables use of xarray.plot functions as attributes on a Dataset.
    For example, Dataset.plot.scatter
    r   _dsr   datasetr$   r%   c                    || _         d S r'   r   )r(   r   s     r)   r*   zDatasetPlotAccessor.__init__  s    r+   r	   c                     t          d          )Nz^Dataset.plot cannot be called directly. Use an explicit plot method, e.g. ds.plot.scatter(...))
ValueErrorr6   s      r)   r2   zDatasetPlotAccessor.__call__  s    A
 
 	
r+   NTrk   r7   r   r@   rO   rA   rl   r?   rm   r   rn   ro   r;   rL   r=   rM   r<   r>   rN   r9   r:   rp   r{   rB   rP   rC   rJ   rq   rr   r|   rs   rR   rt   r}   rD   r   rE   rF   rQ   rG   rH   rI   rv   rw   rx   r~   r1   r   c       !            d S r'   rU   r   s$                                       r)   r   zDatasetPlotAccessor.scatter  r   r+   r   r   rY   c       !            d S r'   rU   r   s$                                       r)   r   zDatasetPlotAccessor.scatter  r   r+   r   c       !            d S r'   rU   r   s$                                       r)   r   zDatasetPlotAccessor.scatter  r   r+   %PathCollection | FacetGrid[DataArray]c                6    t          j        | j        g|R i |S r'   )r   r   r   r6   s      r)   r   zDatasetPlotAccessor.scatter.  s%    #DH>t>>>v>>>r+   )r@   rA   uvr?   rm   r:   r9   r>   r;   r=   rp   sharexshareyr<   rt   	add_guider   r   rv   rw   rx   r   r   rz   r   r   ry   ru   r   r   r   r   r   r   r   r   r   r   c                   d S r'   rU    r(   r@   rA   r   r   r?   rm   r:   r9   r>   r;   r=   rp   r   r   r<   rt   r   r   r   rv   rw   rx   r   r   rz   r   r   ry   ru   r7   r1   s                                    r)   quiverzDatasetPlotAccessor.quiver2  
    F 	r+   )r@   rA   r   r   r?   rm   r9   r>   r;   r=   rp   r   r   r<   rt   r   r   r   rv   rw   rx   r   r   rz   r   r   ry   ru   r   c                   d S r'   rU   r   s                                    r)   r   zDatasetPlotAccessor.quiverW  r   r+   )r@   rA   r   r   r?   rm   r:   r>   r;   r=   rp   r   r   r<   rt   r   r   r   rv   rw   rx   r   r   rz   r   r   ry   ru   c                   d S r'   rU   r   s                                    r)   r   zDatasetPlotAccessor.quiver|  r   r+   Quiver | FacetGridc                6    t          j        | j        g|R i |S r'   )r   r   r   r6   s      r)   r   zDatasetPlotAccessor.quiver  s%    "48=d===f===r+   r   c                   d S r'   rU   r   s                                    r)   
streamplotzDatasetPlotAccessor.streamplot  r   r+   c                   d S r'   rU   r   s                                    r)   r   zDatasetPlotAccessor.streamplot  r   r+   c                   d S r'   rU   r   s                                    r)   r   zDatasetPlotAccessor.streamplot  r   r+   LineCollection | FacetGridc                6    t          j        | j        g|R i |S r'   )r   r   r   r6   s      r)   r   zDatasetPlotAccessor.streamplot  s%    &txA$AAA&AAAr+   )r   r   r$   r%   )r$   r	   )Br7   r   r@   rO   rA   rO   rl   rO   r?   rO   rm   r   rn   rO   ro   rO   r;   rL   r=   rM   r<   rM   r>   rN   r9   r%   r:   r%   rp   r{   rB   rP   rC   rP   rJ   rP   rq   rP   rr   r|   rs   rR   rt   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rv   rM   rw   rM   rx   r~   r1   r   r$   r   )Br7   r   r@   rO   rA   rO   rl   rO   r?   rO   rm   r   rn   rO   ro   rO   r;   rL   r=   rM   r<   rM   r>   rN   r9   rO   r:   r   rp   r{   rB   rP   rC   rP   rJ   rP   rq   rP   rr   r|   rs   rR   rt   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rv   rM   rw   rM   rx   r~   r1   r   r$   rY   )Br7   r   r@   rO   rA   rO   rl   rO   r?   rO   rm   r   rn   rO   ro   rO   r;   rL   r=   rM   r<   rM   r>   rN   r9   r   r:   rO   rp   r{   rB   rP   rC   rP   rJ   rP   rq   rP   rr   r|   rs   rR   rt   r}   rD   r   rE   r   rF   rQ   rG   rQ   rH   rQ   rI   rQ   rv   rM   rw   rM   rx   r~   r1   r   r$   rY   )r$   r   )4r7   r   r@   rO   rA   rO   r   rO   r   rO   r?   rO   rm   r   r:   r%   r9   r%   r>   rN   r;   rL   r=   rM   rp   r{   r   rR   r   rR   r<   r   rt   r}   r   rP   r   r}   r   rN   rv   rM   rw   rM   rx   r~   r   rP   r1   r   r$   r   )4r7   r   r@   rO   rA   rO   r   rO   r   rO   r?   rO   rm   r   r:   r   r9   rO   r>   rN   r;   rL   r=   rM   rp   r{   r   rR   r   rR   r<   r   rt   r}   r   rP   r   r}   r   rN   rv   rM   rw   rM   rx   r~   r   rP   r1   r   r$   r   )4r7   r   r@   rO   rA   rO   r   rO   r   rO   r?   rO   rm   r   r:   rO   r9   r   r>   rN   r;   rL   r=   rM   rp   r{   r   rR   r   rR   r<   r   rt   r}   r   rP   r   r}   r   rN   rv   rM   rw   rM   rx   r~   r   rP   r1   r   r$   r   )r$   r   )4r7   r   r@   rO   rA   rO   r   rO   r   rO   r?   rO   rm   r   r:   r%   r9   r%   r>   rN   r;   rL   r=   rM   rp   r{   r   rR   r   rR   r<   r   rt   r}   r   rP   r   r}   r   rN   rv   rM   rw   rM   rx   r~   r   rP   r1   r   r$   r   )r$   r   )r   r   r   r,   r-   r   r*   r2   r
   r   r   r   r   r   r   rU   r+   r)   r   r     s         
 LLLI   
 
 
 
  "!!#%)&*%)*.!##!%!%"&$(,0-1###'#'!%!%!!!%G& & & & & X&P  "!!#%)&*%)*.!###!%!%"&$(,0-1###'#'!%!%!!!%G& & & & & X&P  "!!#%)&*%)*.!###!%!%"&$(,0-1###'#'!%!%!!!%G& & & & & X&P Y_\)**? ? ? +*?  "!!!#%)*.!# $-1!%-1#!!!%"?" " " " " X"H  "!!!#%)#*.!# $-1!%-1#!!!%"?" " " " " X"H  "!!!#%)#*.!# $-1!%-1#!!!%"?" " " " " X"H Y_\())> > > *)>  "!!!#%)*.!# $-1!%-1#!!!%"?" " " " " X"H  "!!!#%)#*.!# $-1!%-1#!!!%"?" " " " " X"H  "!!!#%)#*.!# $-1!%-1#!!!%"?" " " " " X"H Y_\,--B B B .-B B Br+   r   )2
__future__r   r   collections.abcr   r   typingr   r   r   r	   r
   numpynpxarray.plotr   r   matplotlib.axesr   matplotlib.collectionsr   r   r   matplotlib.colorsr   matplotlib.containerr   matplotlib.contourr   matplotlib.imager   matplotlib.quiverr   mpl_toolkits.mplot3d.art3dr   r   numpy.typingr   xarray.core.dataarrayr   xarray.core.datasetr   xarray.core.typesr   r   r   xarray.plot.facetgridr   r    r   rU   r+   r)   <module>r      s   " " " " " "     . . . . . . . . B B B B B B B B B B B B B B     5 4 4 4 4 4 4 4 0$$$$$$OOOOOOOOOO++++++111111111111******((((((CCCCCCCC&&&&&&//////++++++NNNNNNNNNN//////AA AA AA AA AA AA AA AAHuB uB uB uB uB uB uB uB uB uBr+   