
    G8c                         d dl 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 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)Affine2D	Transform)image_comparison)ParasiteAxes)SubplotHost)host_subplot_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                  |       t        ||d      }|j                  j                  |       |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     \/usr/lib/python3/dist-packages/mpl_toolkits/tests/test_axisartist_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_subplotr   	parasitesappendplot
set_aspectset_xlimset_ylimgrid)figr	   trrD   ax1ax2r<   r3   s         @@r   test_custom_transformrZ      s    4i 441 1 **,C,T2K	QB'+K
c1a
<COOC
sBW
5CMMHHaVc3Z NN2LLBLLBHHTNr   zpolar_box.pngg{Gz?c            	      F   dt         j                  d<   t        j                  d      } t               j	                  t
        j                  dz  d      t        j                         z   }t        j                  dddd d d	t
        j                  f
      }t        j                  d      }t        j                         }t        ||||      }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       t5        ||d      }|j6                  ||j6                  z   k(  sJ |j8                  j;                  |       |j=                  t        j>                  d	dd      t        j>                  d d d             |jA                  d       |jC                  d!d       |jE                  d!d        |jG                  d       y )"NrI   text.kerning_factor   r^   figsize     f@rJ      h  r   	lon_cycle	lat_cycle
lon_minmax
lat_minmax   extreme_findergrid_locator1tick_formatter1rB   rC   rightTtopbottom-   )axeslatTestr   lonTest 2iLZ   rE   rF      2   rK   )$rL   rcParamsrM   r   scaler"   pir   PolarTransformr   ExtremeFinderCycleinf
LocatorDMSFormatterDMSr   r	   axismajor_ticklabelsset_visible
get_helpernth_coord_ticksrN   new_floating_axislabelset_textset_extremesr   	transDatarO   rP   rQ   linspacerR   rS   rT   rU   )	rV   rW   rk   rl   rm   rD   rX   r   rY   s	            r   test_polar_boxr   P   s    +,CLL&'
**V
$C 
		"%%$,	+i.F.F.H	HB
 "44R?B?C@DABBFF	MN !++B/M"//1O'7E6C8GI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, sBW
5C==B....MMHHR[[B#R[[R%<=NN2LLRLLRHHTNr   zaxis_direction.pnggV-?c            	      t   dt         j                  d<   t        j                  d      } t               j	                  t
        j                  dz  d      t        j                         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   r\   r]   r_   ra   rJ   rb   rc   r   rd   ri   rj   rB   rC   F   left)rr   axis_directionlat1rt   TgMbP?rK   ry   rn   lat2rp   ru   rv   ro   r^   )nbinsi   )#rL   r{   rM   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_finderrl   
set_paramsgrid_locator2rR   rS   rT   rU   )rV   rW   rk   rl   rm   rD   rX   r   s           r   test_axis_directionr      s    +,CLL&'
**V
$C 
		"%%$,	+i.F.F.H	HB "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.transformsr   r   matplotlib.testing.decoratorsr   %mpl_toolkits.axes_grid1.parasite_axesr   mpl_toolkits.axisartistr	   r
   r   !mpl_toolkits.axisartist.axislinesr   /mpl_toolkits.axisartist.grid_helper_curvelinearr   rZ   r   r    r   r   <module>r      s        , 5 : > / L 0 2 )*)E: F:z ?#9$?; @;| '(	uEB FBr   