+
     ]i  c                   s    R t ^ RIt^ RIHt ^ RIt^ RIt^RIH	t	H
t
 ^RIHt ^RIHtHt ^RIHtHt ]! ^4      w  tttttttttttt]! ]P@                  ! R	4      4      t! ! R R4      t"R# )
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)Sized)_apicbook)Path)IdentityTransformAffine2D)	JoinStyleCapStylec                   s~  a  ] tR t^t o Rt/ RRbRRbRRbRR	bR
RbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbR R!bR"R#b/ R$R%bR&R&bR'R(bR)R*bR+R,bR-R.bR/R0bR1R2b]R3b]R4b]R5b]R6b]	R7b]
R8b]R9b]R:b]R;bC]R<]R=]R>R?R@RAR@RBR@RCR@/CtRtRtRtRRE ltRF tRG tRH tRI tRJ tRK tRL tRM tRN tRO tRP t RQ t!RR t"RS t#RT t$RU t%RVRDRWRD/RX lt&RRY lt'RZ t(R[ t)R\ t*R] t+R^ t,R_ t-R` t.RRb lt/Rc t0Rd t1]2Pf                  ! ^ ^.RR.^R..4      t4]2Pf                  ! ^ ^.RR.RR..4      t5]2Pf                  ! RR.RR.^R.RR..4      t6]2Pf                  ! ^ ^.^ R.RR..4      t7]2Pf                  ! ^ ^.^ R.^R..4      t8Re t9Rf t:Rg t;Rh t<Ri t=Rj t>Rk t?Rl t@Rm tARn tBRo tCRp tDRq tE]2! RrR.RrRa..4      tFRs tGRt tH]2! RrRr.RaRr..4      tIRu tJRv tK]2! RRr.RRa..4      tLRw tMRx tN]2! RrRr.RrR.RrRr.RyRz.RrRr.RRz..]2P                  ]2P                  ]2P                  ]2P                  ]2P                  ]2P                  .4      tQR{ tRR| tSR} tTR~ tU]2! RR.RrRr.RaR..4      tVR tWR tXR tYR tZ]2! RRr.RrR.Ra^ ..4      t[R t\R t]R t^R t_]2! RRr.RaRr.RrR.RrRa..]2P                  ]2P                  ]2P                  ]2P                  .4      t`R ta]2! RR.RaRa.RRa.RaR..]2P                  ]2P                  ]2P                  ]2P                  .4      tbR tc]2Pf                  ! ]dP                  ! . RO4      ^,          4      tf]2Pf                  ! ]dP                  ! . RO4      ^,          4      tgR th]2Pf                  ! ]dP                  ! . RO4      ^,          4      ti]2Pf                  ! ]dP                  ! . RO4      ^,          4      tjR tkRtlV tmRD# )MarkerStylea7  
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.
.ZpointZ,ZpixeloZcirclevZtriangle_down^Ztriangle_up<Ztriangle_left>Ztriangle_rightZ1Ztri_downZ2Ztri_upZ3Ztri_leftZ4Z	tri_right8ZoctagonsZsquarepZpentagon*ZstarhZhexagon1HZhexagon2Z+ZplusxDZdiamonddZthin_diamondZ|ZvlineZ_ZhlinePZplus_filledXZx_filledZtickleftZ	tickrightZtickupZtickdownZ	caretleftZ
caretrightZcaretupZ	caretdownZcaretleftbaseZcaretrightbaseZcaretupbaseZcaretdownbaseZNoneZnothingnoneZ  Nc                s    RV n         W0n        Ve   \        V4      MRV n        Ve   \	        V4      MRV n        V P                  V4       V P                  V4       R# )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	transformZcapstyleZ	joinstyles   &&&&&&9/usr/lib64/python3.14/site-packages/matplotlib/markers.py__init__ZMarkerStyle.__init__   sW    . !%(4<4Hhx0d7@7Ly3RVI&     c                sH   V P                   f   R # \        V n        \        4       V n        R V n        R V n        R V n        \        P                  V n
        V P                  ;'       g    \        P                  V n        V P                  R8g  V n        V P                  4        R # )Nr   )r   _empty_path_pathr   
_transform	_alt_path_alt_transform_snap_thresholdr   Zround
_joinstyler   r   Zbutt	_capstyle
_fillstyle_filledr"      &r&   _recacheZMarkerStyle._recache   s{      ( 
+-"##//,,== &0r(   c                sR    \        \        V P                  P                  4      4      # N)Zboollenr*   verticesr3   r4   r&   __bool__ZMarkerStyle.__bool__
  s    C

++,--r(   c                    V P                   # r6   r2   r3   r4   r&   	is_filledZMarkerStyle.is_filled      ||r(   c                r:   r6   )r1   r3   r4   r&   get_fillstyleZMarkerStyle.get_fillstyle  s    r(   c                s    Vf   \         P                  R,          p\        P                  ! V P                  VR7       Wn        R# )z
Set the fillstyle.

Parameters
----------
fillstyle : {'full', 'left', 'right', 'bottom', 'top', 'none'}
    The part of the marker surface that is colored with
    markerfacecolor.
Nzmarkers.fillstyle)r$   )mplrcParamsr   Zcheck_in_list
fillstylesr1   )r"   r$   s   &&r&   r    ZMarkerStyle._set_fillstyle  s2     %89I4??i@#r(   c                .    V P                   P                  # r6   )r/   namer3   r4   r&   get_joinstyleZMarkerStyle.get_joinstyle"  s    ###r(   c                rB   r6   )r0   rC   r3   r4   r&   get_capstyleZMarkerStyle.get_capstyle%  s    ~~"""r(   c                r:   r6   )_markerr3   r4   r&   
get_markerZMarkerStyle.get_marker(  r=   r(   c                s$   \        V\        4      '       d0   \        P                  ! V4      '       d   V P                  V n        EMy\        V\        \        34      '       d<   WP                  9   d,   \        V RV P                  V,          ,           4      V n        EM"\        V\        P                  4      '       d<   VP                  ^8X  d+   VP                  ^,          ^8X  d   V P                  V n        M\        V\        4      '       d   V P                  V n        M\        V\         4      '       d1   \#        V4      R9   d!   V^,          R9   d   V P$                  V n        MY\        V\&        4      '       d'   \(        P*                  ! VP,                  4      V n        M \        V4       V P                  V n        \        V\&        4      '       g   Wn        V P3                  4        R# R#   \.         d   p\/        RT: 24      ThRp?ii ; i)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`.
Z_set_zUnrecognized marker style N)      )       rH   )Z
isinstanceZstrr   Zis_math_text_set_mathtext_pathr   ZintmarkersZgetattrnpZndarrayZndimZshape_set_verticesr   _set_path_markerr    r7   _set_tuple_markerr   copyZdeepcopy__dict__
ValueErrorrF   r5   )r"   r#   Zerr   && r&   r!   ZMarkerStyle._set_marker+  sz    fc""u'9'9&'A'A$($;$;D!c
++,,0F$+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/ /H:H

Hc                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*.
)r*   r3   r4   r&   get_pathZMarkerStyle.get_pathP  s     zzr(   c                    V P                   f   V P                  P                  4       # V P                  V P                   ,           P                  4       # )zR
Return the transform to be applied to the `.Path` from
`MarkerStyle.get_path()`.
)r   r+   frozenr3   r4   r&   get_transformZMarkerStyle.get_transformY  sA    
 '??))++OOd&:&::BBDDr(   c                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*.
)r,   r3   r4   r&   get_alt_pathZMarkerStyle.get_alt_pathc  s     ~~r(   c                rW   )zV
Return the transform to be applied to the `.Path` from
`MarkerStyle.get_alt_path()`.
)r   r-   rX   r3   r4   r&   get_alt_transformZMarkerStyle.get_alt_transforml  sE    
 '&&--//''$*>*>>FFHHr(   c                r:   r6   )r.   r3   r4   r&   get_snap_thresholdZMarkerStyle.get_snap_thresholdv  s    ###r(   c                sV    V P                   e   V P                   P                  4       # R# )z.Return user supplied part of marker transform.N)r   rX   r3   r4   r&   get_user_transformZMarkerStyle.get_user_transformy  s(    +''..00 ,r(   c                sz    \        V 4      pVP                  e   V;P                  V,          un        V# Wn        V# )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"   r%   
new_markerrU   r&   transformedZMarkerStyle.transformed~  sA     !&
%%1&&)3&  *3&r(   degradc               s   Vf   Vf   \        R4      hVe   Ve   \        R4      h\        V 4      pVP                  f   \        4       Vn        Ve   VP                  P	                  V4       Ve   VP                  P                  V4       V# )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)rT   r   r   r   
rotate_degrotate)r"   r`   ra   r^   s   &$$ r&   rotatedZMarkerStyle.rotated  s     ;3;<==?sFGG &
%%-)1J&?&&11#6?&&--c2r(   c                s    Vf   Tp\        V 4      pVP                  ;'       g    \        4       pVP                  W4      Vn        V# )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"   ZsxZsyr^   r+      &&&  r&   scaledZMarkerStyle.scaled  sF     :B &
//==8:
%/%5%5b%=
"r(   c                s    R V n         R# )FNr;   r3   r4   r&   _set_nothingZMarkerStyle._set_nothing  s	    r(   c                s    \         P                  ! \         P                  ! VP                  4      4      p\	        4       P                  R V,          4      V n        Wn        R# )      ?N)rN   maxabsr8   r   re   r+   r*   )r"   pathZrescalerU   r&   _set_custom_markerZMarkerStyle._set_custom_marker  s:    &&./"***3=9
r(   c                s<    V P                  V P                  4       R # r6   )rm   rF   r3   r4   r&   rP   ZMarkerStyle._set_path_marker  s    -r(   c                sN    V P                  \        V P                  4      4       R # r6   )rm   r   rF   r3   r4   r&   rO   ZMarkerStyle._set_vertices  s    T\\ 23r(   c                s   V P                   p\        V4      ^8X  d   V^ ,          Rr2M!\        V4      ^8X  d   V^ ,          V^,          r2V^,          pV^ 8X  dF   \        P                  ! X4      V n        V P
                  ;'       g    \        P                  V n        MV^8X  dF   \        P                  ! X4      V n        V P
                  ;'       g    \        P                  V n        MaV^8X  dM   \        P                  ! X4      V n        RV n        V P
                  ;'       g    \        P                  V n        M\        RV 24      h\        4       P                  R4      P!                  X4      V n        R# )rH           FzUnexpected tuple marker: ri   N)rF   r7   r   unit_regular_polygonr*   r   r   miterr/   unit_regular_starbevelZunit_regular_asteriskr2   rT   r   re   rb   r+   )r"   r#   ZnumsidesZrotationZsymstyle   &    r&   rQ   ZMarkerStyle._set_tuple_marker  s   v;!!'Ch[A!'F1Ih!9q=228<DJ"22EEiooDO]//9DJ"22EEiooDO]33H=DJ DL"22EEiooDO8ABB"***3/::8Dr(   c                s   ^ RI Hp V! RV P                  4       \        P                  R,          R7      p\        VP                  4      ^ 8X  d   R# VP                  4       p\        VP                  VP                  4      p\        4       P                  VP                  ) RVP                  ) ,          ,           VP                  ) RVP                  ) ,          ,           4      P                  RV,          4      V n        W n        RV n        R# )	zK
Draw mathtext markers '$...$' using `.TextPath` object.

Submitted by tcb
)TextPathztext.usetex)Zxyr   ZusetexNri         ?F)rJ   rJ   )Zmatplotlib.textrt   rG   r?   r@   r7   r8   Zget_extentsrj   ZwidthZheightr   	translateZxminZyminre   r+   r*   _snap)r"   rt   ZtextZbboxZmax_dimrs   r&   rL   ZMarkerStyle._set_mathtext_path  s     	- 6T__%6"||M:<t}}"!djj$++.JY		zC4::+$55		zC4;;,DV7VWU3=! 	 

r(   c                s<    V P                  4       V P                  9   # r6   )r>   _half_fillstylesr3   r4   r&   
_half_fillZMarkerStyle._half_fill  s    !!#t'<'<<<r(   ru   c           
     s   \        4       P                  R V,          4      V n        \        P                  V n        V P                  4       '       g   \        P                  ! 4       V n	        R# \        P                  ! 4       ;V n	        V n        V P                  4       pV P                  P                  R^ R^ZR^RR/V,          4       V P                  P                  4       P                  R4      V n        R# )ri   righttopleftbottom       f@N)r   re   r+   rN   Zinfr.   ry   r   Zunit_circler*   Zunit_circle_righthalfr,   r>   rb   rX   r-   )r"   sizefsrU   r&   _set_circleZMarkerStyle._set_circle  s    "***3:6!vv  ))+DJ*.*D*D*FFDJ##%BOO&&!UBXsCBGI"&//"8"8":"E"Ed"KDr(   c                s*    V P                  R R7       R# )ri   )r   N)r   r3   r4   r&   
_set_pointZMarkerStyle._set_point  s    c"r(   c                s    \         P                  ! 4       V n        \        4       P	                  RR4      V n        RV n        R# )g9?Ng9߿)r   unit_rectangler*   r   rv   r+   r.   r3   r4   r&   
_set_pixelZMarkerStyle._set_pixel  s2    ((*
 #*..xB#r(   c                s   \        4       P                  R 4      P                  V4      V n        RV n        V P                  4       '       g   V P                  V n        EMGV P                  V P                  V P                  V P                  .pV P                  4       pVR8X  d:   V^ V,           ^,          ,          V n        V^V,           ^,          ,          V n        MVR8X  d:   V^V,           ^,          ,          V n        V^ V,           ^,          ,          V n        MxVR8X  d:   V^V,           ^,          ,          V n        V^V,           ^,          ,          V n        M8V^V,           ^,          ,          V n        V^V,           ^,          ,          V n        V P                  V n        V P                  ;'       g    \         P"                  V n        R# )ri         @r{   r}   r|   N)r   re   rb   r+   r.   ry   _triangle_pathr*   _triangle_path_u_triangle_path_l_triangle_path_d_triangle_path_rr>   r,   r-   r   r   rp   r/   )r"   ZrotZskipZmpathsr   rf   r&   _set_triangleZMarkerStyle._set_triangle$  sX   "***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A)//r(   c                s&    V P                  R ^ 4      # )rn   r   r3   r4   r&   _set_triangle_upZMarkerStyle._set_triangle_upB  s    !!#q))r(   c                s&    V P                  R ^4      # )r   r   r3   r4   r&   _set_triangle_downZMarkerStyle._set_triangle_downE      !!%++r(   c                s&    V P                  R ^4      # )g     V@r   r3   r4   r&   _set_triangle_leftZMarkerStyle._set_triangle_leftH  s    !!$**r(   c                s&    V P                  R ^4      # )g     p@r   r3   r4   r&   _set_triangle_rightZMarkerStyle._set_triangle_rightK  r   r(   c                s   \        4       P                  R
R
4      V n        RV n        V P	                  4       '       g   \
        P                  ! 4       V n        M\        RR.RR.RR .RR .RR..4      V n        \        RR .RR .RR.RR.RR ..4      V n        V P                  4       pR^ R^ZR^RR/V,          pV P                  P                  V4       V P                  V n        V P                  ;'       g    \        P                  V n        R	# )ri          @rn   ru   r}   rz   r{   r|   r~   N      )r   rv   r+   r.   ry   r   r   r*   r,   r>   rb   r-   r   r   rp   r/   r"   r   rc      &  r&   _set_squareZMarkerStyle._set_squareN  s    "*..tT:"  ,,.DJ SzC:Sz #SzC:7 8DJ!C:SzC:$':Sz#; <DN##%B7BsFCHLFOO&&v."&//D..AA)//r(   c                s.   \        4       P                  RR4      P                  ^-4      V n        RV n        V P                  4       '       g   \        P                  ! 4       V n        M\        ^ ^ .^^ .^^.^ ^ ..4      V n        \        ^ ^ .^ ^.^^.^ ^ ..4      V n	        V P                  4       pR^ R^ZR^RR/V,          pV P                  P                  V4       V P                  V n        V P                  ;'       g    \        P                  V n        R# )	ri   r   rz   r{   r|   r}   r~   Nr   )r   rv   rb   r+   r.   ry   r   r   r*   r,   r>   r-   r   r   rp   r/   r   r   r&   _set_diamondZMarkerStyle._set_diamond`  s    "*..tT:EEbI"  ,,.DJ1v1v1v1v>?DJ!Aq6Aq6Aq6Aq6"BCDN##%Bq%VS(CHLFOO&&v."&//D..AA)//r(   c                s^    V P                  4        V P                  P                  R R4       R# )333333?ru   N)r   r+   re   r3   r4   r&   _set_thin_diamondZMarkerStyle._set_thin_diamondn  s"    c3'r(   c           	     s   \        4       P                  R 4      V n        RV n        \        P
                  ! ^4      pV P                  4       '       g   Wn        MVP                  p^\        P                  ! ^4      ,           R,          p\	        V. RO,          4      p\	        V. R	O,          4      p\	        V^ ,          V^,          V^,          ^ V) .V^ ,          .4      p\	        V^ ,          V^,          V^,          ^ V) .V^ ,          .4      pRWE3RWT3RWg3RWv3/V P                  4       ,          w  V n        V n        V P                  V n        V P                  ;'       g    \        P                   V n        R# )
ri   r         @r{   r}   r|   rz   N)rJ   rK      rJ   )rK   rH   rI   r   rK   )r   re   r+   r.   r   ro   ry   r*   r8   rN   sqrtr>   r,   r-   r   r   rp   r/   )r"   polypathvertsyr{   r}   r|   rz      &       r&   _set_pentagonZMarkerStyle._set_pentagonr  s9   "***3/",,Q/  !J%%ERWWQZ2%Au\*+C%01Fq58U1XA2waIJD%(E!HeAhQBqJKE}hw*   "*$&DJ #'//D..AA)//r(   c           	     s@   \        4       P                  R 4      V n        RV n        \        P
                  ! ^RR7      pV P                  4       '       g	   Wn        EMVP                  p\	        \        P                  ! VR,          VR,          VR,          .4      4      p\	        \        P                  ! VR,          VR,          .4      4      p\	        \        P                  ! VR	,          VR,          .4      4      p\	        \        P                  ! VR,          VR
,          VR,          .4      4      pRW43RWC3RWV3RWe3/V P                  4       ,          w  V n        V n        V P                  V n        V P                  ;'       g    \        P                   V n        R# )ri   r   gŋ!r?)ZinnerCirclerJ   r   N:i   
   N:rJ   rK   N:rI   i   N:rI   r   N:rJ   i   N:   r   Nr{   r}   r|   rz   N)r   re   r+   r.   r   rq   ry   r*   r8   rN   concatenater>   r,   r-   r   r   rr   r/   )r"   r   r   r{   r}   r|   rz   s   &      r&   	_set_starZMarkerStyle._set_star  s=   "***3/"))!B  !J%%Er~~uSz5;c
&KLMC"..%*eCj)ABCFc
E#J'?@ADsU4[%*(MNOE}hw*   "*$&DJ #'//D..AA)//r(   c           	     s@   \        4       P                  R 4      V n        RV n        \        P
                  ! ^4      pV P                  4       '       g	   Wn        EMVP                  p\        P                  ! \        P                  ! ^\        P                  ,          R,          4      4      p\	        \        P                  ! V) ^ 3.V. R	O,          V^ 3..4      4      p\	        \        P                  ! V) ^ 3.VR,          V^ 3..4      4      p\	        VR,          4      p\	        V. R
O,          4      pRWE3RWT3RWg3RWv3/V P                  4       ,          w  V n        V n        V P                  V n        V P"                  ;'       g    \$        P&                  V n        R# )ri   Ng      @:rH   r   Nr   r{   r}   r|   rz   )rK   rJ   r   )rJ   r   r   rI   )r   re   r+   r.   r   ro   ry   r*   r8   rN   rk   ZcosZpir   r>   r,   r-   r   r   rp   r/   )r"   r   r   r   r{   r}   r|   rz   r   r&   _set_hexagon1ZMarkerStyle._set_hexagon1  sH   "***3/#,,Q/  !J%%Ervva"%%i"n-.Ar~~!Qy%	2BaVH&MNOC"..QB7)U3Z1a&)JKLFc
#D|,-E}hw*   "*$&DJ #'//D..AA)//r(   c           	     s   \        4       P                  R 4      P                  ^4      V n        RV n        \
        P                  ! ^4      pV P                  4       '       g   Wn        MVP                  p\        P                  ! ^4      ^,          RrC\        V. R	O,          4      p\        VR,          4      p\        \        P                  ! W43.VR,          V) V) 3W43..4      4      p\        \        P                  ! W43.V^^R
1,          V) V) 3..4      4      pRWV3RWe3RWx3RW3/V P                  4       ,          w  V n        V n        V P                  V n        V P                   ;'       g    \"        P$                  V n        R# )ri   N:rK   r   N:NrI   Nr{   r}   r|   rz   g      ?)rK   rJ   r   r   rK   )r   re   rb   r+   r.   r   ro   ry   r*   r8   rN   r   r   r>   r,   r-   r   r   rp   r/   )	r"   r   r   r   r   r{   r}   r|   rz   s	   &        r&   _set_hexagon2ZMarkerStyle._set_hexagon2  s]   "***3/::2>#,,Q/  !J%%E771:>6qu_-.C%*%F%)rA2h%7(9 : ;D%!B-A2r()5 6 7E }hw*   "*$&DJ #'//D..AA)//r(   c           
     s   \        4       P                  R 4      V n        RV n        \        P
                  ! ^4      pV P                  4       '       g#   V P                  P                  R4       Wn        M\        P                  ! R4      R,          p\	        ^ R.^ ^.V) ^.RV.RV) .V) R.^ R..4      ;V n        V n        V P                  4       pV P                  P                  R^ R^ZR^RR	/V,          4       V P                  P                  4       P                  R
4      V n        V P                  ;'       g    \         P"                  V n        R# )ri   r   g     6@r   r   r|   r}   rz   r{   r~   r   Nr   )r   re   r+   r.   r   ro   ry   rb   r*   rN   r   r,   r>   rX   r-   r   r   rp   r/   )r"   r   r   r   s   &   r&   _set_octagonZMarkerStyle._set_octagon  s%   "***3/",,Q/  OO&&t,!Jb A*.R1a&A2q'B7qbQB8aW.+/ /DJ ##%BOO&&Hb'3sCBGI"&//"8"8":"E"Ee"LD..AA)//r(   rn   c                    \        4       P                  R 4      V n        RV n        RV n        V P
                  V n        R# ri   ru   FN)r   re   r+   r.   r2   _line_marker_pathr*   r3   r4   r&   
_set_vlineZMarkerStyle._set_vline  s2    "***3/"++
r(   c                f    V P                  4        V P                  P                  ^Z4      V n        R# iZ   N)r   r+   rb   r3   r4   r&   
_set_hlineZMarkerStyle._set_hline  s"    //44R8r(   c                s    \        4       P                  RR 4      V n        R V n        RV n        V P
                  V n        R# ru   FN      r   re   r+   r.   r2   _tickhoriz_pathr*   r3   r4   r&   _set_tickleftZMarkerStyle._set_tickleft  s4    "***45"))
r(   c                    \        4       P                  R R 4      V n        R V n        RV n        V P
                  V n        R# ru   FNr   r3   r4   r&   _set_tickrightZMarkerStyle._set_tickright  s4    "***34"))
r(   c                r   r   r   re   r+   r.   r2   _tickvert_pathr*   r3   r4   r&   _set_tickupZMarkerStyle._set_tickup  s4    "***34"((
r(   c                s    \        4       P                  R R4      V n        R V n        RV n        V P
                  V n        R# r   r   r3   r4   r&   _set_tickdownZMarkerStyle._set_tickdown  s4    "***35"((
r(   g?ri   c                r   )ri   r   FN)r   re   r+   r.   r2   	_tri_pathr*   r3   r4   r&   _set_tri_downZMarkerStyle._set_tri_down  s0    "***3/"^^
r(   c                f    V P                  4        V P                  P                  ^4      V n        R# i   Nr   r+   rb   r3   r4   r&   _set_tri_upZMarkerStyle._set_tri_up  $    //44S9r(   c                f    V P                  4        V P                  P                  R 4      V n        R# r~   Nr   r3   r4   r&   _set_tri_leftZMarkerStyle._set_tri_left  r   r(   c                r   r   r   r3   r4   r&   _set_tri_rightZMarkerStyle._set_tri_right#  s$    //44R8r(   g      ?c                s    \        4       P                  R 4      V n        RV n        RV n        V P
                  V n        V P                  ;'       g    \        P                  V n
        R# ri   g      @FN)r   re   r+   r.   r2   _caret_pathr*   r   r   rp   r/   r3   r4   r&   _set_caretdownZMarkerStyle._set_caretdown)  sK    "***3/"%%
..AA)//r(   c                r   r   r   r+   rb   r3   r4   r&   _set_caretupZMarkerStyle._set_caretup0  $    //44S9r(   c                r   r   r   r3   r4   r&   _set_caretleftZMarkerStyle._set_caretleft4  r   r(   c                r   r   r   r3   r4   r&   _set_caretrightZMarkerStyle._set_caretright8  s$    //44R8r(   c                sH    V P                  4        V P                  V n        R # r6   )r   _caret_path_baser*   r3   r4   r&   _set_caretdownbaseZMarkerStyle._set_caretdownbase>  s    **
r(   c                r   r   r   r+   rb   r3   r4   r&   _set_caretupbaseZMarkerStyle._set_caretupbaseB  $    !//44S9r(   c                r   r   r   r3   r4   r&   _set_caretleftbaseZMarkerStyle._set_caretleftbaseF  r   r(   c                r   r   r   r3   r4   r&   _set_caretrightbaseZMarkerStyle._set_caretrightbaseJ  s$    !//44R8r(   c                r   r   )r   re   r+   r.   r2   
_plus_pathr*   r3   r4   r&   	_set_plusZMarkerStyle._set_plusS  s0    "***3/"__
r(   c                r   r   )r   re   r+   r.   r2   _x_pathr*   r3   r4   r&   _set_xZMarkerStyle._set_x^  s0    "***3/"\\
r(   c           
        \        4       V n        R V n        V P                  ;'       g    \        P
                  V n        V P                  4       '       g   V P                  V n	        R# V P                  ;V n	        V n        V P                  4       pV P                  P                  R^ R^ZR^RR/V,          4       V P                  P                  4       P                  ^4      V n        R# r   r{   r|   r}   rz   r~   N)r   r+   r.   r   r   rp   r/   ry   _plus_filled_pathr*   _plus_filled_path_tr,   r>   rb   rX   r-   r"   r      & r&   _set_plus_filledZMarkerStyle._set_plus_filledk  s    "*"..AA)//  //DJ +/*B*BBDJ##%BOO&&62xgsCBGI"&//"8"8":"E"Ec"JDr(   c           
     r   r   )r   r+   r.   r   r   rp   r/   ry   _x_filled_pathr*   _x_filled_path_tr,   r>   rb   rX   r-   r   r   r&   _set_x_filledZMarkerStyle._set_x_filled  s    "*"..AA)//  ,,DJ +/*?*??DJ##%BOO&&62xgsCBGI"&//"8"8":"E"Ec"JDr(   )rS   r,   r-   r0   r2   r1   r/   rF   r   r*   rw   r.   r+   r   r   r   )r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Zfullr|   rz   r}   r{   r   )r|   rz   r}   r{   )NNNNr6   )ru   r   g333333gɿr   r   g       gg      ))r   )rK   r   )rK   r   )rI   r   rI   rK   rK   rK   rK   rI   r   rI   r   rK   r   rK   )r   r   )r   r   ))rI   rJ   r   r   r   r   r   r   )r   rJ   ))r   )rJ   r   )rK   r   )rH   r   rK   rJ   rH   rK   rK   rH   rJ   rK   r   rH   r   rK   r   rJ   )r   r   )r   r   r   r   r   r   r   )nZ__name__Z
__module__Z__qualname__Z__firstlineno____doc__TICKLEFT	TICKRIGHTTICKUPTICKDOWN	CARETLEFT
CARETRIGHTCARETUP	CARETDOWNCARETLEFTBASECARETRIGHTBASECARETUPBASECARETDOWNBASErM   Zfilled_markersrA   rx   r'   r5   r9   r<   r>   r    rD   rE   rG   r!   rV   rY   rZ   r[   r\   r]   r_   rd   rg   rh   rm   rP   rO   rQ   rL   ry   r   r   r   r   Z_create_closedr   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   ZMOVETOZLINETOr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rN   Zarrayr   r   r   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r&   r   r      sF     *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!<  .$$##JEI$1
 T 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 Kr(   r   )rJ   rH   )#r   rR   Zcollections.abcr    ZnumpyrN   Z
matplotlibr?   r   r   r   rl   r   Z
transformsr   r   Z_enumsr   r   Zranger   r   r   r   r   r   r   r   r   r   r  r  Zemptyr)   r   ) r(   r&   <module>r     sp   @B  !     3 '
 ?DBi<9fh
J]288F#$vK vKr(   