
    eCi                       S SK Jr  S SKJr  S SKrS SKrS SKJ	r	J
r
JrJrJrJrJrJrJrJr  S SKJr  \(       a  S SKJr  S SKJr  S SKJr   " S	 S
\	5      r\\ " S S\5      5       5       r\\ " S S\5      5       5       rg)    )annotations)	dataclassN)
MarkMappableMappableBoolMappableFloatMappableStringMappableColorMappableStyleresolve_propertiesresolve_colordocument_properties)TYPE_CHECKING)Any)Artist)Scalec                  @    \ rS rSrS rS rS r        SS jrSrg)	DotBase   c                    / n0 nUS   nS n[        U[        R                  R                  5      (       a  U" U5      $ U H%  nXc;  a
  U" U5      X6'   UR	                  X6   5        M'     U$ )Nmarkerc                \    U R                  5       R                  U R                  5       5      $ )N)get_pathtransformedget_transform)ms    L/home/james-whalen/.local/lib/python3.13/site-packages/seaborn/_marks/dot.pyget_transformed_path4DotBase._resolve_paths.<locals>.get_transformed_path#   s     ::<++AOO,=>>    )
isinstancemplmarkersMarkerStyleappend)selfdatapaths
path_cacher   r   r   s          r   _resolve_pathsDotBase._resolve_paths   so    
h	? fckk5566'//A" 4Q 7
LL'  r    c                   [        XU5      nU R                  U5      US'   US   S-  US'   [        U[        5      (       a  US   R	                  5       nO"US    Vs/ s H  oUR	                  5       PM     nnUS   U-  US'   U$ s  snf )Npath	pointsize   sizer   fill)r   r*   r!   dict	is_filled)r&   r'   scalesresolvedfilled_markerr   s         r   _resolve_propertiesDotBase._resolve_properties/   s    %d&9..x8#K0A5dD!!$X.88:M4<X4FG4Fq[[]4FMG#F+m;	 Hs   Bc                ~   U" 5        H  u  pEn[         R                  " US   US   /5      nU R                  XR5      n[        R                  R
                  " S
UUS   US   US   US   US   US   UR                  [        R                  R                  5       S	.	U R                  D6nUR                  U5        M     g )Nxyr-   r0   	facecolor	edgecolor	linewidth	edgestyle)	offsetsr(   sizes
facecolors
edgecolors
linewidths
linestylestransOffset	transform )npcolumn_stackr7   r"   collectionsPathCollection	transData
transformsIdentityTransform
artist_kwsadd_collection)	r&   	split_genr4   orient_r'   axr@   pointss	            r   _plotDotBase._plot>   s     %;KARootCy$s)&<=G++D9D__33 6l6l,,,,LL..::< //F f%# 'r    c                   U Vs0 s H  oDU_M     nnU R                  XS5      n[        R                  R                  " SUS   /US   /US   /US   /US   /US   /[        R                  R                  5       S.U R                  D6$ s  snf )	Nr-   r0   r<   r=   r>   r?   )r(   rA   rB   rC   rD   rE   rG   rH   )r7   r"   rK   rL   rN   rO   rP   )r&   	variablesvaluer4   vkeyress          r   _legend_artistDotBase._legend_artistW   s     "++A%x+&&s3-- 	
v;-v;-K()K()K()K()nn668	
 oo	
 		
 ,s   B
rH   N)rZ   z	list[str]r[   r   r4   zdict[str, Scale]returnr   )	__name__
__module____qualname____firstlineno__r*   r7   rW   r_   __static_attributes__rH   r    r   r   r      s6    $&2
"
+.
8H
	
r    r   c                    ^  \ rS rSr% Sr\" SSS9rS\S'   \" SSS9rS	\S
'   \" SSS9r	S	\S'   \" SSS9r
S\S'   \" SSS9rS	\S'   \" SSS9rS\S'   \" SSS9rS\S'   \" SSS9rS	\S'   \" SSS9rS	\S'   \" SSS9rS\S'   U 4S jrSrU =r$ )Dotj   z
A mark suitable for dot plots or less-dense scatterplots.

See also
--------
Dots : A dot mark defined by strokes to better handle overplotting.

Examples
--------
.. include:: ../docstrings/objects.Dot.rst

oFgroupingr	   r      r   r.         ?strokeC0r
   color   alphaTr   r1   dependrl   r=   	edgealphag      ?	edgewidth-r   r?   c                  > [         T	U ]  X5      nUS   nUS   nUS   n[        R                  " XFU5      US'   [	        XSU5      n[	        XSU5      n[        R
                  " U5      (       d	  US S 2S 4   n[        R                  " XHU5      US'   [        R                  " U5      n[        U[        5      (       a  [        / US S QUS   U-  P5      nO([        R                  US S 2S S24   US S 2S4   U-  4   nXsS	'   U$ )
Nr1   ro   rw   r>    edger=      r<   )
superr7   rI   wherer   isscalarsqueezer!   tuplec_)
r&   r'   r4   r5   filledmain_strokeedge_stroke
main_color
edge_color	__class__s
            r   r7   Dot._resolve_properties   s   7.t<&!x({+ "k J"4r6:
"4vv>
{{6""AtG_F "Z HF#j%((HBQHA1GHIJz!RaR%0*QT2BV2KKLJ *r    rH   )rb   rc   rd   re   __doc__r   r   __annotations__r.   ro   rq   rs   r1   r=   rv   rw   r?   r7   rf   __classcell__r   s   @r   rh   rh   j   s     &cE:FN:'E:I}:$S59FM9#D59E=9#A6E=6!$7D,7'wGI}G'wGI}G'U;I};'e<I}< r    rh   c                     ^  \ rS rSr% Sr\" SSS9rS\S'   \" SSS	9rS
\S'   \" SSS	9r	S
\S'   \" SSS	9r
S\S'   \" SSS	9rS
\S'   \" SSS	9rS\S'   \" SSS9rS\S'   \" SSS	9rS
\S'   U 4S jrSrU =r$ )Dots   z
A dot mark defined by strokes to better handle overplotting.

See also
--------
Dot : A mark suitable for dot plots or less-dense scatterplots.

Examples
--------
.. include:: ../docstrings/objects.Dots.rst

zscatter.markerF)rcrl   r	   r      rk   r   r.   rn   ro   rp   r
   rq   rr   rs   Tr   r1   rt   	fillcolorg?	fillalphac                T  > [         TU ]  X5      nUR                  S5      US'   [        XSU5      US'   [        XSU5      US'   UR	                  SS5        US   n[        U[        5      (       a  US	   US
   US   US   US   -  4US'   U$ US S 2S4   US   -  US S 2S4'   XCS'   U$ )Nro   r>   r1   r<   rz   r=   r?   )r   Nr   rr   r/   r|   )r}   r7   popr   
setdefaultr!   r   )r&   r'   r4   r5   fcr   s        r   r7   Dots._resolve_properties   s    7.t< (X 6 -d&& I -d"f EK3k"b%  $&qE2a5"Q%A&AQ9Q$QH[!
  !Q$x(6"22Bq!tH$&[!r    rH   )rb   rc   rd   re   r   r   r   r   r.   ro   rq   rs   r1   r   r   r7   rf   r   r   s   @r   r   r      s     &)9EJFNJ'E:I}:$S59FM9#D59E=9#A6E=6!$7D,7'wGI}G'U;I}; r    r   )
__future__r   dataclassesr   numpyrI   
matplotlibr"   seaborn._marks.baser   r   r   r   r	   r
   r   r   r   r   typingr   r   matplotlib.artistr   seaborn._core.scalesr   r   rh   r   rH   r    r   <module>r      s    " !     !(*L
d L
^ 
1' 1  1h 
&7 &  &r    