
    4h0                         d dl 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 d d
lmZ d dlmZ  edgdd      d        Z edgdd      d        Z edgdd      d        Zy)    N)Path)	PolarAxes)FuncFormatter)Affine2D	Transform)image_comparison)SubplotHost)host_axes_class_factory)angle_helper)Axes)GridHelperCurveLinearzcustom_transform.pngdefaultg?)styletolc                      G fddt                G fddt               t        j                         } t        t              } d      }t        |      } || ddd|      }| j                  |       |j                  |d      }|j                  d	d
gddg       |j                  d       |j                  dd       |j                  dd       |j                  d       y )Nc                   :    e Zd ZdxZZd Zd ZeZd ZeZ	 fdZ
y)*test_custom_transform.<locals>.MyTransform   c                 <    t        j                  |        || _        y)z
            Resolution is the number of steps to interpolate between each input
            line segment to approximate its path in transformed space.
            Nr   __init___resolutionself
resolutions     _D:\jyotish\venv\Lib\site-packages\mpl_toolkits/axisartist/tests/test_grid_helper_curvelinear.pyr   z3test_custom_transform.<locals>.MyTransform.__init__   s    
 t$)D    c                 T    |j                   \  }}t        j                  |||z
  g      S NTnpcolumn_stackr   llxys       r   	transformz4test_custom_transform.<locals>.MyTransform.transform   &    44DAq??Aq1u:..r   c                     |j                  | j                        }t        | j                  |j                        |j
                        S r   )interpolatedr   r   r(   verticescodes)r   pathipaths      r   transform_pathz9test_custom_transform.<locals>.MyTransform.transform_path%   s6    %%d&6&67Eu~~6DDr   c                 (     | j                         S r   r   )r   MyTransformInvs    r   invertedz3test_custom_transform.<locals>.MyTransform.inverted+   s    !$"2"233r   N)__name__
__module____qualname__
input_dimsoutput_dimsr   r(   transform_non_affiner0   transform_path_non_affiner4   )r3   s   r   MyTransformr      s2    #$$
[	*	/  )	E %3!	4r   r<   c                   ,    e Zd ZdxZZd Zd Z fdZy)-test_custom_transform.<locals>.MyTransformInvr   c                 <    t        j                  |        || _        y r   r   r   s     r   r   z6test_custom_transform.<locals>.MyTransformInv.__init__1   s    t$)Dr   c                 T    |j                   \  }}t        j                  |||z   g      S r   r    r$   s       r   r(   z7test_custom_transform.<locals>.MyTransformInv.transform5   r)   r   c                 (     | j                         S r   r2   )r   r<   s    r   r4   z6test_custom_transform.<locals>.MyTransformInv.inverted9   s    t//00r   N)r5   r6   r7   r8   r9   r   r(   r4   )r<   s   r   r3   r>   .   s    #$$
[	*	/	1r   r3      grid_helperequalviewlim_mode      g      @g      $@      ?r   
   T)r   pltfigurer
   r   r   add_subplotget_aux_axesplot
set_aspectset_xlimset_ylimgrid)figr	   trrD   ax1ax2r<   r3   s         @@r   test_custom_transformrY      s    4i 441 1 **,C)$/K	QB'+K
c1a
<COOC


2G

4CHHaVc3Z NN2LLBLLBHHTNr   zpolar_box.pngg{Gz?c            	         t        j                  d      } t               j                  t        j
                  dz  d      t        j                  d      z   }t        j                  dddd d d	t        j                  f
      }t        ||t        j                  d      t        j                         t        d             }t        | ddd|      }|j                   d   j"                  j%                  d       |j                   d   j"                  j%                  d       d	|j                   d   j'                         _        d|j                   d   j'                         _        | j+                  |       |j-                  d	d|      x|j                   d<   }|j.                  j1                  d       |j.                  j%                  d       |j'                         j3                  dd       |j-                  dd|      x|j                   d<   }|j.                  j1                  d       |j'                         j3                  dd       |j5                  |d      }|j6                  ||j6                  z   k(  sJ |j9                  t	        j:                  d	d d!      t	        j:                  d"d"d!             |j=                  d       |j?                  d#d       |jA                  d#d"       |jC                  d       y )$N   r\   figsize     f@rJ   Fapply_theta_transforms   h  r   	lon_cycle	lat_cycle
lon_minmax
lat_minmax   c                 (    | dk(  rdS t        |        S )N   eight)int)r&   ps     r   <lambda>z test_polar_box.<locals>.<lambda>f   s    a1f73USQRVH3Ur   )extreme_findergrid_locator1tick_formatter1tick_formatter2rB   rC   rightTtopbottom-   )axeslatTestr   rI   lonTest 2iLZ   rE   rF      2   rK   )"rL   rM   r   scaler"   pir   PolarTransformr   ExtremeFinderCycleinfr   
LocatorDMSFormatterDMSr   r	   axismajor_ticklabelsset_visible
get_helpernth_coord_ticksrN   new_floating_axislabelset_textset_extremesrO   	transDatarP   linspacerQ   rR   rS   rT   )rU   rV   rp   rD   rW   r   rX   s          r   test_polar_boxr   O   sj   
**V
$C *

2554<
,

"
"%
@AB "44R?B?C@DABBFF	MN (
%"--b1$113%&UVK c1a
<CHHW&&2248HHUO$$006 67CHHW  "267CHHX!!#3OOC(::1bs:KKCHHUOdJJJJ4 OO""1b)(::1ac:JJCHHUOdJJ!OO""4, 

2G

4C==B....HHR[[B#R[[R%<=NN2LLRLLRHHTNr   zaxis_direction.pnggp=
ף?c            	      x   dt         j                  d<   t        j                  d      } t               j	                  t
        j                  dz  d      t        j                  d      z   }t        j                  d	d	d
d d dt
        j                  f      }t        j                  d      }t        j                         }t        ||||      }t        | ddd|      }|j                   j#                         D ]  }|j%                  d        | j'                  |       |j)                  dd|d      x|j                   d<   }|j*                  j-                  d       |j*                  j%                  d       |j/                         j1                  dd       |j)                  dd|d      x|j                   d<   }|j*                  j-                  d       |j*                  j%                  d       |j/                         j1                  dd       |j)                  dd|d      x|j                   d<   }|j*                  j-                  d       |j/                         j1                  dd       |j2                  j5                  d       |j*                  j5                  d       |j6                  j8                  j;                  d !       |j6                  j<                  j;                  d !       |j?                  d       |jA                  d"d#       |jC                  d$d       |jE                  d       y )%NrI   ztext.kerning_factorr[   r]   r_   rJ   Fr`   rb   rc   r   rd   ri   )rp   rq   rr   rB   rC      left)rx   axis_directionlat1rz   TgMbP?rK   r   rt   lat2rv   r{   r|   ru   r\   )nbinsirk   )#rL   rcParamsrM   r   r   r"   r   r   r   r   r   r   r   r   r   r	   r   valuesr   rN   r   r   r   r   r   r   set_axis_directiongrid_finderrq   
set_paramsgrid_locator2rQ   rR   rS   rT   )rU   rV   rp   rq   rr   rD   rW   r   s           r   test_axis_directionr      s   *+CLL&'
**V
$C *

2554<
,

"
"%
@AB "44R?B?C@DABBFF	7N !++B/M"//1O'7E6C8GIK
 c1a
<C! " OOC);;	3 < ) )CHHVt 	JJJJ4 OO""5"-);;	2 < * *CHHVt 	JJJJ4 OO""5"-(::	2 ; + +CHHUOd 	JJ!OO""2s+,,U3JJ!!%())4414=))4414=NN2LLQLLRHHTNr   )numpyr"   matplotlib.pyplotpyplotrL   matplotlib.pathr   matplotlib.projectionsr   matplotlib.tickerr   matplotlib.transformsr   r   matplotlib.testing.decoratorsr   mpl_toolkits.axisartistr	   %mpl_toolkits.axes_grid1.parasite_axesr
   r   !mpl_toolkits.axisartist.axislinesr   /mpl_toolkits.axisartist.grid_helper_curvelinearr   rY   r   r    r   r   <module>r      s        , + 5 : / I 0 2 )*)E9 F9x ?#9$?8 @8x '(	tDB EBr   