
    
3j                         S r SSKrSSKJrJr  SSKrSSKrSSK	J
r
Jr  SSKJr  SSKJrJr  SSKJrJr  \" S	5      u  rrrrrrrrrrrr \" \RB                  " S
5      5      r" " S S5      r#g)a  
Functions to handle markers; used by the marker functionality of
`~matplotlib.axes.Axes.plot`, `~matplotlib.axes.Axes.scatter`, and
`~matplotlib.axes.Axes.errorbar`.

All possible markers are defined here:

============================== ====== =========================================
marker                         symbol description
============================== ====== =========================================
``"."``                        |m00|  point
``","``                        |m01|  pixel
``"o"``                        |m02|  circle
``"v"``                        |m03|  triangle_down
``"^"``                        |m04|  triangle_up
``"<"``                        |m05|  triangle_left
``">"``                        |m06|  triangle_right
``"1"``                        |m07|  tri_down
``"2"``                        |m08|  tri_up
``"3"``                        |m09|  tri_left
``"4"``                        |m10|  tri_right
``"8"``                        |m11|  octagon
``"s"``                        |m12|  square
``"p"``                        |m13|  pentagon
``"P"``                        |m23|  plus (filled)
``"*"``                        |m14|  star
``"h"``                        |m15|  hexagon1
``"H"``                        |m16|  hexagon2
``"+"``                        |m17|  plus
``"x"``                        |m18|  x
``"X"``                        |m24|  x (filled)
``"D"``                        |m19|  diamond
``"d"``                        |m20|  thin_diamond
``"|"``                        |m21|  vline
``"_"``                        |m22|  hline
``0`` (``TICKLEFT``)           |m25|  tickleft
``1`` (``TICKRIGHT``)          |m26|  tickright
``2`` (``TICKUP``)             |m27|  tickup
``3`` (``TICKDOWN``)           |m28|  tickdown
``4`` (``CARETLEFT``)          |m29|  caretleft
``5`` (``CARETRIGHT``)         |m30|  caretright
``6`` (``CARETUP``)            |m31|  caretup
``7`` (``CARETDOWN``)          |m32|  caretdown
``8`` (``CARETLEFTBASE``)      |m33|  caretleft (centered at base)
``9`` (``CARETRIGHTBASE``)     |m34|  caretright (centered at base)
``10`` (``CARETUPBASE``)       |m35|  caretup (centered at base)
``11`` (``CARETDOWNBASE``)     |m36|  caretdown (centered at base)
``"none"`` or ``"None"``              nothing
``" "`` or  ``""``                    nothing
``"$...$"``                    |m37|  Render the string using mathtext.
                                      E.g ``"$f$"`` for marker showing the
                                      letter ``f``.
``verts``                             A list of (x, y) pairs used for Path
                                      vertices. The center of the marker is
                                      located at (0, 0) and the size is
                                      normalized, such that the created path
                                      is encapsulated inside the unit cell.
``path``                              A `~matplotlib.path.Path` instance.
``(numsides, 0, angle)``              A regular polygon with ``numsides``
                                      sides, rotated by ``angle``.
``(numsides, 1, angle)``              A star-like symbol with ``numsides``
                                      sides, rotated by ``angle``.
``(numsides, 2, angle)``              An asterisk with ``numsides`` sides,
                                      rotated by ``angle``.
============================== ====== =========================================

Note that special symbols can be defined via the
:ref:`STIX math font <mathtext>`,
e.g. ``"$\u266B$"``. For an overview over the STIX font symbols refer to the
`STIX font table <http://www.stixfonts.org/allGlyphs.html>`_.
Also see the :doc:`/gallery/text_labels_and_annotations/stix_fonts_demo`.

Integer numbers from ``0`` to ``11`` create lines and triangles. Those are
equally accessible via capitalized variables, like ``CARETDOWNBASE``.
Hence the following are equivalent::

    plt.plot([1, 2, 3], marker=11)
    plt.plot([1, 2, 3], marker=matplotlib.markers.CARETDOWNBASE)

Markers join and cap styles can be customized by creating a new instance of
MarkerStyle.
A MarkerStyle can also have a custom `~matplotlib.transforms.Transform`
allowing it to be arbitrarily rotated or offset.

Examples showing the use of markers:

* :doc:`/gallery/lines_bars_and_markers/marker_reference`
* :doc:`/gallery/lines_bars_and_markers/scatter_star_poly`
* :doc:`/gallery/lines_bars_and_markers/multivariate_marker_plot`

.. |m00| image:: /_static/markers/m00.png
.. |m01| image:: /_static/markers/m01.png
.. |m02| image:: /_static/markers/m02.png
.. |m03| image:: /_static/markers/m03.png
.. |m04| image:: /_static/markers/m04.png
.. |m05| image:: /_static/markers/m05.png
.. |m06| image:: /_static/markers/m06.png
.. |m07| image:: /_static/markers/m07.png
.. |m08| image:: /_static/markers/m08.png
.. |m09| image:: /_static/markers/m09.png
.. |m10| image:: /_static/markers/m10.png
.. |m11| image:: /_static/markers/m11.png
.. |m12| image:: /_static/markers/m12.png
.. |m13| image:: /_static/markers/m13.png
.. |m14| image:: /_static/markers/m14.png
.. |m15| image:: /_static/markers/m15.png
.. |m16| image:: /_static/markers/m16.png
.. |m17| image:: /_static/markers/m17.png
.. |m18| image:: /_static/markers/m18.png
.. |m19| image:: /_static/markers/m19.png
.. |m20| image:: /_static/markers/m20.png
.. |m21| image:: /_static/markers/m21.png
.. |m22| image:: /_static/markers/m22.png
.. |m23| image:: /_static/markers/m23.png
.. |m24| image:: /_static/markers/m24.png
.. |m25| image:: /_static/markers/m25.png
.. |m26| image:: /_static/markers/m26.png
.. |m27| image:: /_static/markers/m27.png
.. |m28| image:: /_static/markers/m28.png
.. |m29| image:: /_static/markers/m29.png
.. |m30| image:: /_static/markers/m30.png
.. |m31| image:: /_static/markers/m31.png
.. |m32| image:: /_static/markers/m32.png
.. |m33| image:: /_static/markers/m33.png
.. |m34| image:: /_static/markers/m34.png
.. |m35| image:: /_static/markers/m35.png
.. |m36| image:: /_static/markers/m36.png
.. |m37| image:: /_static/markers/m37.png
    N)HashableSized   )_apicbook)Path)IdentityTransformAffine2D)	JoinStyleCapStyle   )r      c                   R   \ rS rSrSr0 SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_S#S$_0 S%S&_S'S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_\S4_\S5_\S6_\S7_\	S8_\
S9_\S:_\S;_\S<_E\S=\S>\S?S@SASBSASCSASDSA0ErSErSFrSGr SSI jrSJ rSK rSL rSM rSN rSO rSP rSQ rSR rSS rST r SU r!SV r"SW r#SX r$SY r%SHSHSZ.S[ jr&SS\ jr'S] r(S^ r)S_ r*S` r+Sa r,Sb r-Sc r.SSe jr/Sf r0Sg r1\2Rf                  " ShSi/SjSj/SiSj//5      r4\2Rf                  " ShSi/SkSl/SmSl//5      r5\2Rf                  " SkSl/SmSl/SiSj/SjSj//5      r6\2Rf                  " ShSi/ShSj/SjSj//5      r7\2Rf                  " ShSi/ShSj/SiSj//5      r8Sn r9So r:Sp r;Sq r<Sr r=Ss r>St r?Su r@Sv rASw rBSx rCSy rDSz rE\2" S{S|/S{Sd//5      rFS} rGS~ rH\2" S{S{/SdS{//5      rIS rJS rK\2" SS{/SSd//5      rLS rMS rN\2" S{S{/S{S|/S{S{/SS/S{S{/SS//\2R                  \2R                  \2R                  \2R                  \2R                  \2R                  /5      rQS rRS rSS rTS rU\2" S|S/S{S{/SdS//5      rVS rWS rXS rYS rZ\2" S|S{/S{S/SdSh//5      r[S r\S r]S r^S r_\2" S|S{/SdS{/S{S|/S{Sd//\2R                  \2R                  \2R                  \2R                  /5      r`S ra\2" S|S|/SdSd/S|Sd/SdS|//\2R                  \2R                  \2R                  \2R                  /5      rbS rc\2Rf                  " \dR                  " / SQ5      S-  5      rf\2Rf                  " \dR                  " / SQ5      S-  5      rgS rh\2Rf                  " \dR                  " / SQ5      S-  5      ri\2Rf                  " \dR                  " / SQ5      S-  5      rjS rkSrlgH)MarkerStyle   a7  
A class representing marker types.

Instances are immutable. If you need to change anything, create a new
instance.

Attributes
----------
markers : dict
    All known markers.
filled_markers : tuple
    All known filled markers. This is a subset of *markers*.
fillstyles : tuple
    The supported fillstyles.
.point,pixelocirclevtriangle_down^triangle_up<triangle_left>triangle_right1tri_down2tri_up3tri_left4	tri_right8octagonssquareppentagon*starhhexagon1Hhexagon2+plusxDdiamonddthin_diamond|vline_hlinePplus_filledXx_filledtickleft	tickrighttickuptickdown	caretleft
caretrightcaretup	caretdowncaretleftbasecaretrightbasecaretupbasecaretdownbaseNonenothingnone  )r   r   r   r   r   r   r(   r*   r,   r.   r0   r2   r7   r9   r?   rA   )fullleftrightbottomtoprQ   )rU   rV   rW   rX   Nc                     SU l         X0l        Ub  [        U5      OSU l        Ub  [	        U5      OSU l        U R                  U5        U R                  U5        g)a  
Parameters
----------
marker : str, array-like, Path, MarkerStyle
    - Another instance of `MarkerStyle` copies the details of that *marker*.
    - For other possible marker values, see the module docstring
      `matplotlib.markers`.

fillstyle : str, default: :rc:`markers.fillstyle`
    One of 'full', 'left', 'right', 'bottom', 'top', 'none'.

transform : `~matplotlib.transforms.Transform`, optional
    Transform that will be combined with the native transform of the
    marker.

capstyle : `.CapStyle` or %(CapStyle)s, optional
    Cap style that will override the default cap style of the marker.

joinstyle : `.JoinStyle` or %(JoinStyle)s, optional
    Join style that will override the default join style of the marker.
N)_marker_function_user_transformr   _user_capstyler   _user_joinstyle_set_fillstyle_set_marker)selfmarker	fillstyle	transformcapstyle	joinstyles         L/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/markers.py__init__MarkerStyle.__init__   sW    . !%(4<4Hhx0d7@7Ly3RVI&     c                 @   U R                   c  g [        U l        [        5       U l        S U l        S U l        S U l        [        R                  U l
        U R                  =(       d    [        R                  U l        U R                  S:g  U l        U R                  5         g )NrQ   )rZ   _empty_path_pathr	   
_transform	_alt_path_alt_transform_snap_thresholdr   round
_joinstyler\   r   butt	_capstyle
_fillstyle_filledr`   s    rf   _recacheMarkerStyle._recache   sx      ( 
+-"##//,,= &0ri   c                 R    [        [        U R                  R                  5      5      $ N)boollenrl   verticesrw   s    rf   __bool__MarkerStyle.__bool__
  s    C

++,--ri   c                     U R                   $ r{   rv   rw   s    rf   	is_filledMarkerStyle.is_filled      ||ri   c                     U R                   $ r{   )ru   rw   s    rf   get_fillstyleMarkerStyle.get_fillstyle  s    ri   c                 |    [         R                  " US5      n[        R                  " U R                  US9  Xl        g)z
Set the fillstyle.

Parameters
----------
fillstyle : {'full', 'left', 'right', 'bottom', 'top', 'none'}
    The part of the marker surface that is colored with
    markerfacecolor.
zmarkers.fillstyle)rb   N)mpl
_val_or_rcr   check_in_list
fillstylesru   )r`   rb   s     rf   r^   MarkerStyle._set_fillstyle  s.     NN9.AB	4??i@#ri   c                 .    U R                   R                  $ r{   )rr   namerw   s    rf   get_joinstyleMarkerStyle.get_joinstyle!  s    ###ri   c                 .    U R                   R                  $ r{   )rt   r   rw   s    rf   get_capstyleMarkerStyle.get_capstyle$  s    ~~"""ri   c                     U R                   $ r{   )_markerrw   s    rf   
get_markerMarkerStyle.get_marker'  r   ri   c                    [        U[        5      (       a.  [        R                  " U5      (       a  U R                  U l        GOY[        U[        5      (       a2  XR                  ;   a#  [        U SU R                  U   -   5      U l        GO[        U[        R                  5      (       a5  UR                  S:X  a%  UR                  S   S:X  a  U R                  U l        O[        U[        5      (       a  U R                  U l        O[        U[         5      (       a*  [#        U5      S;   a  US   S;   a  U R$                  U l        OX[        U[&        5      (       a&  [(        R*                  " UR,                  5      U l        O [        U5        U R                  U l        [        U[&        5      (       d  Xl        U R3                  5         gg! [.         a  n[/        SU< 35      UeSnAff = f)z
Set the marker.

Parameters
----------
marker : str, array-like, Path, MarkerStyle
    - Another instance of `MarkerStyle` copies the details of that *marker*.
    - For other possible marker values see the module docstring
      `matplotlib.markers`.
_set_r   r   )r      )r   r   r   zUnrecognized marker style N)
isinstancestrr   is_math_text_set_mathtext_pathrZ   r   markersgetattrnpndarrayndimshape_set_verticesr   _set_path_markerr   r}   _set_tuple_markerr   copydeepcopy__dict__
ValueErrorr   rx   )r`   ra   errs      rf   r_   MarkerStyle._set_marker*  sv    fc""u'9'9&'A'A$($;$;D!))f.D$+D'DLL<P2P$QD!,,1AQ1$$($6$6D!%%$($9$9D!''CK6,Aq	Y&$($:$:D!,, MM&//:DMFV(,(:(:%
 &+..!LMMO /	  F 0
;=BEFFs   G
 

G)G$$G)c                     U R                   $ )z
Return a `.Path` for the primary part of the marker.

For unfilled markers this is the whole marker, for filled markers,
this is the area to be drawn with *markerfacecolor*.
)rl   rw   s    rf   get_pathMarkerStyle.get_pathO  s     zzri   c                     U R                   c  U R                  R                  5       $ U R                  U R                   -   R                  5       $ )zR
Return the transform to be applied to the `.Path` from
`MarkerStyle.get_path()`.
)r[   rm   frozenrw   s    rf   get_transformMarkerStyle.get_transformX  sA    
 '??))++OOd&:&::BBDDri   c                     U R                   $ )z
Return a `.Path` for the alternate part of the marker.

For unfilled markers, this is *None*; for filled markers, this is the
area to be drawn with *markerfacecoloralt*.
)rn   rw   s    rf   get_alt_pathMarkerStyle.get_alt_pathb  s     ~~ri   c                     U R                   c  U R                  R                  5       $ U R                  U R                   -   R                  5       $ )zV
Return the transform to be applied to the `.Path` from
`MarkerStyle.get_alt_path()`.
)r[   ro   r   rw   s    rf   get_alt_transformMarkerStyle.get_alt_transformk  sE    
 '&&--//''$*>*>>FFHHri   c                     U R                   $ r{   )rp   rw   s    rf   get_snap_thresholdMarkerStyle.get_snap_thresholdu  s    ###ri   c                 R    U R                   b  U R                   R                  5       $ g)z.Return user supplied part of marker transform.N)r[   r   rw   s    rf   get_user_transformMarkerStyle.get_user_transformx  s(    +''..00 ,ri   c                 p    [        U 5      nUR                  b  U=R                  U-  sl        U$ Xl        U$ )z
Return a new version of this marker with the transform applied.

Parameters
----------
transform : `~matplotlib.transforms.Affine2D`
    Transform will be combined with current user supplied transform.
)r   r[   )r`   rc   
new_markers      rf   transformedMarkerStyle.transformed}  sA     !&
%%1&&)3&  *3&ri   )degradc                   Uc  Uc  [        S5      eUb  Ub  [        S5      e[        U 5      nUR                  c  [        5       Ul        Ub  UR                  R	                  U5        Ub  UR                  R                  U5        U$ )z
Return a new version of this marker rotated by specified angle.

Parameters
----------
deg : float, optional
    Rotation angle in degrees.

rad : float, optional
    Rotation angle in radians.

.. note:: You must specify exactly one of deg or rad.
zOne of deg or rad is requiredz'Only one of deg and rad can be supplied)r   r   r[   r
   
rotate_degrotate)r`   r   r   r   s       rf   rotatedMarkerStyle.rotated  s     ;3;<==?sFGG &
%%-)1J&?&&11#6?&&--c2ri   c                     Uc  Un[        U 5      nUR                  =(       d
    [        5       nUR                  X5      Ul        U$ )a  
Return new marker scaled by specified scale factors.

If *sy* is not given, the same scale is applied in both the *x*- and
*y*-directions.

Parameters
----------
sx : float
    *X*-direction scaling factor.
sy : float, optional
    *Y*-direction scaling factor.
)r   r[   r
   scale)r`   sxsyr   rm   s        rf   scaledMarkerStyle.scaled  sC     :B &
//=8:
%/%5%5b%=
"ri   c                     SU l         g )NFr   rw   s    rf   _set_nothingMarkerStyle._set_nothing  s	    ri   c                     [         R                  " [         R                  " UR                  5      5      n[	        5       R                  SU-  5      U l        Xl        g )N      ?)r   maxabsr~   r
   r   rm   rl   )r`   pathrescales      rf   _set_custom_markerMarkerStyle._set_custom_marker  s:    &&./"***3=9
ri   c                 :    U R                  U R                  5        g r{   )r   r   rw   s    rf   r   MarkerStyle._set_path_marker  s    -ri   c                 L    U R                  [        U R                  5      5        g r{   )r   r   r   rw   s    rf   r   MarkerStyle._set_vertices  s    T\\ 23ri   c                    U R                   n[        U5      S:X  a  US   Sp2O[        U5      S:X  a	  US   US   p2US   nUS:X  aD  [        R                  " W5      U l        U R
                  =(       d    [        R                  U l        OUS:X  aD  [        R                  " W5      U l        U R
                  =(       d    [        R                  U l        O_US:X  aK  [        R                  " W5      U l        SU l        U R
                  =(       d    [        R                  U l        O[        SU 35      e[        5       R                  S5      R!                  W5      U l        g )	Nr   r           r   r   FzUnexpected tuple marker: r   )r   r}   r   unit_regular_polygonrl   r]   r   miterrr   unit_regular_starbevelunit_regular_asteriskrv   r   r
   r   r   rm   )r`   ra   numsidesrotationsymstyles        rf   r   MarkerStyle._set_tuple_marker  s   v;!!'Ch[A!'F1Ih!9q=228<DJ"22EiooDO]//9DJ"22EiooDO]33H=DJ DL"22EiooDO8ABB"***3/::8Dri   c                    SSK Jn  U" SU R                  5       [        R                  S   S9n[        UR                  5      S:X  a  gUR                  5       n[        UR                  UR                  5      n[        5       R                  UR                  * SUR                  * -  -   UR                  * SUR                  * -  -   5      R                  SU-  5      U l        X l        S	U l        g)
zK
Draw mathtext markers '$...$' using `.TextPath` object.

Submitted by tcb
r   )TextPath)r   r   ztext.usetex)xyr*   usetexNr         ?F)matplotlib.textr   r   r   rcParamsr}   r~   get_extentsr   widthheightr
   	translatexminyminr   rm   rl   _snap)r`   r   textbboxmax_dims        rf   r   MarkerStyle._set_mathtext_path  s     	- 6T__%6"||M:<t}}"!djj$++.JY		zC4::+$55		zC4;;,DV7VWU3=! 	 

ri   c                 <    U R                  5       U R                  ;   $ r{   )r   _half_fillstylesrw   s    rf   
_half_fillMarkerStyle._half_fill  s    !!#t'<'<<<ri   r   c                    [        5       R                  SU-  5      U l        [        R                  U l        U R                  5       (       d  [        R                  " 5       U l	        g [        R                  " 5       =U l	        U l        U R                  5       nU R                  R                  SSSSS.U   5        U R                  R                  5       R                  S5      U l        g )Nr   r   Z        rV   rX   rU   rW        f@)r
   r   rm   r   infrp   r  r   unit_circlerl   unit_circle_righthalfrn   r   r   r   ro   )r`   sizefss      rf   _set_circleMarkerStyle._set_circle  s    "***3:6!vv  ))+DJ*.*D*D*FFDJ##%BOO&&BsCBGI"&//"8"8":"E"Ed"KDri   c                 "    U R                  SS9  g )Nr   )r  )r  rw   s    rf   
_set_pointMarkerStyle._set_point
  s    c"ri   c                     [         R                  " 5       U l        [        5       R	                  SS5      U l        S U l        g )Ng9߿)r   unit_rectanglerl   r
   r   rm   rp   rw   s    rf   
_set_pixelMarkerStyle._set_pixel  s2    ((*
 #*..xB#ri   r   r   g333333gɿ333333?c                    [        5       R                  S5      R                  U5      U l        SU l        U R                  5       (       d  U R                  U l        OU R                  U R                  U R                  U R                  /nU R                  5       nUS:X  a!  USU-   S-     U l        USU-   S-     U l        OnUS:X  a!  USU-   S-     U l        USU-   S-     U l        OGUS:X  a!  US	U-   S-     U l        US
U-   S-     U l        O US
U-   S-     U l        US	U-   S-     U l        U R                  U l        U R                  =(       d    [         R"                  U l        g )Nr         @rX   r      r   rW   rU   r   r   )r
   r   r   rm   rp   r  _triangle_pathrl   _triangle_path_u_triangle_path_l_triangle_path_d_triangle_path_rr   rn   ro   r]   r   r   rr   )r`   rotskipmpathsr  s        rf   _set_triangleMarkerStyle._set_triangle#  sU   "***3/::3?"  ,,DJ++++++++-F
 ##%BU{#QXN3
!'TQ!7x#QXN3
!'TQ!7v#QXN3
!'TQ!7#QXN3
!'TQ!7"&//D..A)//ri   c                 &    U R                  SS5      $ )Nr   r   r%  rw   s    rf   _set_triangle_upMarkerStyle._set_triangle_upA  s    !!#q))ri   c                 &    U R                  SS5      $ )Nr	  r   r(  rw   s    rf   _set_triangle_downMarkerStyle._set_triangle_downD      !!%++ri   c                 &    U R                  SS5      $ )Ng     V@r   r(  rw   s    rf   _set_triangle_leftMarkerStyle._set_triangle_leftG  s    !!$**ri   c                 &    U R                  SS5      $ )Ng     p@r   r(  rw   s    rf   _set_triangle_rightMarkerStyle._set_triangle_rightJ  r.  ri   c                    [        5       R                  SS5      U l        SU l        U R	                  5       (       d  [
        R                  " 5       U l        O[        SS/SS/SS/SS/SS//5      U l        [        SS/SS/SS/SS/SS//5      U l        U R                  5       nSSSS	S
.U   nU R                  R                  U5        U R                  U l        U R                  =(       d    [        R                  U l        g )N             @r   r   r   r   r  r  r  )rW   rV   rX   rU   )r
   r   rm   rp   r  r   r  rl   rn   r   r   ro   r]   r   r   rr   r`   r  r   s      rf   _set_squareMarkerStyle._set_squareM  s    "*..tT:"  ,,.DJ SzC:Sz #SzC:7 8DJ!C:SzC:$':Sz#; <DN##%B !BsCHLFOO&&v."&//D..A)//ri   c                    [        5       R                  SS5      R                  S5      U l        SU l        U R                  5       (       d  [        R                  " 5       U l        O~[        SS/SS/SS/SS//5      U l        [        SS/SS/SS/SS//5      U l	        U R                  5       nSSSSS	.U   nU R                  R                  U5        U R                  U l        U R                  =(       d    [        R                  U l        g )
Nr6  -   r  r   r   r  r  r  r  )r
   r   r   rm   rp   r  r   r  rl   rn   r   ro   r]   r   r   rr   r8  s      rf   _set_diamondMarkerStyle._set_diamond_  s    "*..tT:EEbI"  ,,.DJ1v1v1v1v>?DJ!Aq6Aq6Aq6Aq6"BCDN##%B SCHLFOO&&v."&//D..A)//ri   c                 \    U R                  5         U R                  R                  SS5        g )Nr  r   )r=  rm   r   rw   s    rf   _set_thin_diamondMarkerStyle._set_thin_diamondm  s"    c3'ri   c                    [        5       R                  S5      U l        SU l        [        R
                  " S5      nU R                  5       (       d  Xl        OUR                  nS[        R                  " S5      -   S-  n[	        U/ SQ   5      n[	        U/ SQ   5      n[	        US   US   US	   SU* /US   /5      n[	        US   US
   US   SU* /US   /5      nXE4XT4Xg4Xv4S.U R                  5          u  U l        U l        U R                  U l        U R                  =(       d    [        R                   U l        g )Nr   r     r         @)r   r   r  r   )r   r   r   r  r   r   r   r  r   rX   rW   rU   rV   )r
   r   rm   rp   r   r   r  rl   r~   r   sqrtr   rn   ro   r]   r   r   rr   )r`   polypathvertsyrX   rW   rU   rV   s           rf   _set_pentagonMarkerStyle._set_pentagonq  s.   "***3/",,Q/  !J%%ERWWQZ2%Au\*+C%01Fq58U1XA2waIJD%(E!HeAhQBqJKE}*   "*$&DJ #'//D..A)//ri   c           	         [        5       R                  S5      U l        SU l        [        R
                  " SSS9nU R                  5       (       d  Xl        OUR                  n[	        [        R                  " USS USS	 USS
 /5      5      n[	        [        R                  " USS USS /5      5      n[	        [        R                  " USS USS
 /5      5      n[	        [        R                  " USS
 USS	 USS
 /5      5      nX44XC4XV4Xe4S.U R                  5          u  U l        U l        U R                  U l        U R                  =(       d    [        R                   U l        g )Nr   r  rC  gŋ!r?)innerCircler   r     
   r   r         rE  )r
   r   rm   rp   r   r   r  rl   r~   r   concatenater   rn   ro   r]   r   r   rr   )r`   rG  rH  rX   rW   rU   rV   s          rf   	_set_starMarkerStyle._set_star  sF   "***3/"))!B  !J%%Er~~uQqz52;a
&KLMC"..%!*eAaj)ABCFa
E!AJ'?@ADqU1R[%!*(MNOE}*   "*$&DJ #'//D..A)//ri   c                    [        5       R                  S5      U l        S U l        [        R
                  " S5      nU R                  5       (       d  Xl        OUR                  n[        R                  " [        R                  " S[        R                  -  S-  5      5      n[	        [        R                  " U* S4/U/ SQ   US4//5      5      n[	        [        R                  " U* S4/USS US4//5      5      n[	        USS 5      n[	        U/ S	Q   5      nXE4XT4Xg4Xv4S
.U R                  5          u  U l        U l        U R                  U l        U R"                  =(       d    [$        R&                  U l        g )Nr   rQ  rC  g      @r   )r   r   rC  r   r  )r   rC  r  r   rE  )r
   r   rm   rp   r   r   r  rl   r~   r   r   cospirR  r   rn   ro   r]   r   r   rr   )r`   rG  rH  r6   rX   rW   rU   rV   s           rf   _set_hexagon1MarkerStyle._set_hexagon1  sA   "***3/#,,Q/  !J%%Ervva"%%i"n-.Ar~~!Qy%	2BaVH&MNOC"..QB7)U1QZ1a&)JKLFa
#D|,-E}*   "*$&DJ #'//D..A)//ri   c           	         [        5       R                  S5      R                  S5      U l        S U l        [
        R                  " S5      nU R                  5       (       d  Xl        OUR                  n[        R                  " S5      S-  SpC[        U/ SQ   5      n[        USS	 5      n[        [        R                  " X44/US S U* U* 4X44//5      5      n[        [        R                  " X44/US	S
S2   U* U* 4//5      5      nXV4Xe4Xx4X4S.U R                  5          u  U l        U l        U R                  U l        U R                   =(       d    ["        R$                  U l        g )Nr      rQ  r   r  g      ?)r   r   rC  r  r   r   rC  r   r  rE  )r
   r   r   rm   rp   r   r   r  rl   r~   r   rF  rR  r   rn   ro   r]   r   r   rr   )	r`   rG  rH  r6   rI  rX   rW   rU   rV   s	            rf   _set_hexagon2MarkerStyle._set_hexagon2  sV   "***3/::2>#,,Q/  !J%%E771:>6qu_-.C%!*%F%)rA2h%7(9 : ;D%!B-A2r()5 6 7E }*   "*$&DJ #'//D..A)//ri   c           
         [        5       R                  S5      U l        SU l        [        R
                  " S5      nU R                  5       (       d"  U R                  R                  S5        Xl        O[        R                  " S5      S-  n[	        SS/SS	/U* S	/SU/SU* /U* S/SS//5      =U l        U l        U R                  5       nU R                  R                  SS
SSS.U   5        U R                  R                  5       R                  S5      U l        U R                  =(       d    [         R"                  U l        g )Nr   r  rP  g     6@r7  rD  r   r  r   r  r  r  )rU   rW   rV   rX   r	  )r
   r   rm   rp   r   r   r  r   rl   r   rF  rn   r   r   ro   r]   r   r   rr   )r`   rG  r6   r  s       rf   _set_octagonMarkerStyle._set_octagon  s   "***3/",,Q/  OO&&t,!Jb A*.R1a&A2q'B7qbQB8aW.+/ /DJ ##%BOO&&b3sCBGI"&//"8"8":"E"Ee"LD..A)//ri   r         c                 ~    [        5       R                  S5      U l        SU l        SU l        U R
                  U l        g Nr   r   F)r
   r   rm   rp   rv   _line_marker_pathrl   rw   s    rf   
_set_vlineMarkerStyle._set_vline  s2    "***3/"++
ri   c                 d    U R                  5         U R                  R                  S5      U l        g Nr  )re  rm   r   rw   s    rf   
_set_hlineMarkerStyle._set_hline  s"    //44R8ri   c                     [        5       R                  SS5      U l        SU l        SU l        U R
                  U l        g )Nra  r   Fr
   r   rm   rp   rv   _tickhoriz_pathrl   rw   s    rf   _set_tickleftMarkerStyle._set_tickleft  s4    "***45"))
ri   c                     [        5       R                  SS5      U l        SU l        SU l        U R
                  U l        g Nr   Frl  rw   s    rf   _set_tickrightMarkerStyle._set_tickright  s4    "***34"))
ri   g       c                     [        5       R                  SS5      U l        SU l        SU l        U R
                  U l        g rq  r
   r   rm   rp   rv   _tickvert_pathrl   rw   s    rf   _set_tickupMarkerStyle._set_tickup  s4    "***34"((
ri   c                     [        5       R                  SS5      U l        SU l        SU l        U R
                  U l        g )Nr   ra  Fru  rw   s    rf   _set_tickdownMarkerStyle._set_tickdown  s4    "***35"((
ri   g?r   gc                 ~    [        5       R                  S5      U l        SU l        SU l        U R
                  U l        g )Nr   r  F)r
   r   rm   rp   rv   	_tri_pathrl   rw   s    rf   _set_tri_downMarkerStyle._set_tri_down  s0    "***3/"^^
ri   c                 d    U R                  5         U R                  R                  S5      U l        g Nr  r~  rm   r   rw   s    rf   _set_tri_upMarkerStyle._set_tri_up  $    //44S9ri   c                 d    U R                  5         U R                  R                  S5      U l        g Nr  r  rw   s    rf   _set_tri_leftMarkerStyle._set_tri_left  r  ri   c                 d    U R                  5         U R                  R                  S5      U l        g rh  r  rw   s    rf   _set_tri_rightMarkerStyle._set_tri_right"  s$    //44R8ri   g      ?c                     [        5       R                  S5      U l        SU l        SU l        U R
                  U l        U R                  =(       d    [        R                  U l
        g Nr   g      @F)r
   r   rm   rp   rv   _caret_pathrl   r]   r   r   rr   rw   s    rf   _set_caretdownMarkerStyle._set_caretdown(  sH    "***3/"%%
..A)//ri   c                 d    U R                  5         U R                  R                  S5      U l        g r  r  rm   r   rw   s    rf   _set_caretupMarkerStyle._set_caretup/  $    //44S9ri   c                 d    U R                  5         U R                  R                  S5      U l        g r  r  rw   s    rf   _set_caretleftMarkerStyle._set_caretleft3  r  ri   c                 d    U R                  5         U R                  R                  S5      U l        g rh  r  rw   s    rf   _set_caretrightMarkerStyle._set_caretright7  s$    //44R8ri   g      c                 F    U R                  5         U R                  U l        g r{   )r  _caret_path_baserl   rw   s    rf   _set_caretdownbaseMarkerStyle._set_caretdownbase=  s    **
ri   c                 d    U R                  5         U R                  R                  S5      U l        g r  r  rm   r   rw   s    rf   _set_caretupbaseMarkerStyle._set_caretupbaseA  $    !//44S9ri   c                 d    U R                  5         U R                  R                  S5      U l        g r  r  rw   s    rf   _set_caretleftbaseMarkerStyle._set_caretleftbaseE  r  ri   c                 d    U R                  5         U R                  R                  S5      U l        g rh  r  rw   s    rf   _set_caretrightbaseMarkerStyle._set_caretrightbaseI  s$    !//44R8ri   c                 ~    [        5       R                  S5      U l        SU l        SU l        U R
                  U l        g rc  )r
   r   rm   rp   rv   
_plus_pathrl   rw   s    rf   	_set_plusMarkerStyle._set_plusR  s0    "***3/"__
ri   c                 ~    [        5       R                  S5      U l        SU l        SU l        U R
                  U l        g r  )r
   r   rm   rp   rv   _x_pathrl   rw   s    rf   _set_xMarkerStyle._set_x]  s0    "***3/"\\
ri   ))r  )r   r  )r   r  )r   r  r   r   r   r   r   r   r  r   r  r   r  r   )r  r  )r  r  rQ  ))r   r   r  r  r  r  r  r  )r  r   c                    [        5       U l        SU l        U R                  =(       d    [        R
                  U l        U R                  5       (       d  U R                  U l	        g U R                  =U l	        U l        U R                  5       nU R                  R                  SSSSS.U   5        U R                  R                  5       R                  S5      U l        g Nr  r   r  r  r  )rX   rU   rW   rV   )r
   rm   rp   r]   r   r   rr   r  _plus_filled_pathrl   _plus_filled_path_trn   r   r   r   ro   r`   r  s     rf   _set_plus_filledMarkerStyle._set_plus_filledj  s    "*"..A)//  //DJ +/*B*BBDJ##%BOO&&2sCBGI"&//"8"8":"E"Ec"JDri   ))r  )r   r  )r   r  )r   r  r   r   r   r   r   r   r   r   r  r   r  r   r  r   )r  r  r  )r  r  r  r  r  r  r  c                    [        5       U l        SU l        U R                  =(       d    [        R
                  U l        U R                  5       (       d  U R                  U l	        g U R                  =U l	        U l        U R                  5       nU R                  R                  SSSSS.U   5        U R                  R                  5       R                  S5      U l        g r  )r
   rm   rp   r]   r   r   rr   r  _x_filled_pathrl   _x_filled_path_trn   r   r   r   ro   r  s     rf   _set_x_filledMarkerStyle._set_x_filled  s    "*"..A)//  ,,DJ +/*?*??DJ##%BOO&&2sCBGI"&//"8"8":"E"Ec"JDri   )r   rn   ro   rt   rv   ru   rr   r   rZ   rl   r   rp   rm   r\   r]   r[   )NNNNr{   )r   )m__name__
__module____qualname____firstlineno____doc__TICKLEFT	TICKRIGHTTICKUPTICKDOWN	CARETLEFT
CARETRIGHTCARETUP	CARETDOWNCARETLEFTBASECARETRIGHTBASECARETUPBASECARETDOWNBASEr   filled_markersr   r  rg   rx   r   r   r   r^   r   r   r   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   _create_closedr  r  r   r  r!  r%  r)  r,  r0  r3  r9  r=  r@  rJ  rS  rX  r\  r_  rd  re  ri  rm  rn  rr  rv  rw  rz  MOVETOLINETOr}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   arrayr  r  r  r  r  r  __static_attributes__ ri   rf   r   r      s=    *W*W* 	X* 	_	*
 	]* 	_* 	* 	Z* 	X* 	Z* 	[* 	Y* 	X* 	Z* 	V*  	Z!*" 	Z#*$ 	V%*& 	S'*( 	Y)** 	^+*, 	W-*. 	W/*0 	]1*2 	Z3*4 	*5*6 	;7*8 	9*: 	*;*< 	;=*> 	L?*@ 	A*B 	;C*D 	E*F 	(]		Y
IS*G\N DJ9 KO!<  .$$##JEI$1
  "t :,
.4E*0=
L#$ ((1a&2r(QG)DEN**QFT4L3++NO**
T{QGb"X68**QFQGb"X+FG**QFQGaW+EFB<*,+,B$B(B.B,B0B4B* sDkC:67,9 S#Jc
34O** D#;s45N)) sCj3+Cj3*Cj4+/ kk4;;kk4;;kk4;;01I$::9 sc3Z#s<=KB::9 dC[3+Qx@A+::9 c{S#JT{S#J0{{DKK{{DKK12J
% T4L3*3K#t.KKKK./G
" ++BHH 6D -EGH-I J --bhh 8/ /023/4 5K (( 3B *CEF*G HN **288 5% ,&(),* +Kri   r   )$r  r   collections.abcr   r   numpyr   
matplotlibr   rS   r   r   r   r   
transformsr	   r
   _enumsr   r   ranger  r  r  r  r  r  r  r  r  r  r  r  emptyrk   r   r  ri   rf   <module>r     sp   @B  +     3 '
 ?DBi<9fh
J]288F#$uK uKri   