Files
old-parkingkoncept/parkingkonceptvenv/lib/python3.7/site-packages/matplotlib/__pycache__/text.cpython-37.pyc

1106 lines
64 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
U<>]h<<00>@s<>dZddlZddlZddlZddlZddlZddlmZm Z m
Z
m Z ddlm Z ddl mZddlmZddlmZmZmZdd lmZdd
lmZmZmZmZmZmZe<02>e<1F>Z ej!d d <0C><00>Z"d d<0E>Z#dd<10>Z$e <09>%dgdgdgdgdgdgdgdgdgdgdgdgd<1D> <0C>Gdd<1F>de <0C><03>Z&e
j'j(e<08>)e&<26>d <20>e
<EFBFBD>*e&j+<2B>e j,d!d"d#<23>Gd$d%<25>d%e&<26><03>Z-e
j'j(e<08>)e-<2D>d&<26>Gd'd(<28>d(e.<2E>Z/Gd)d*<2A>d*e.<2E>Z0Gd+d"<22>d"e&e0<65>Z1e
j'j(e1j+jd,<2C>dS)-z)
Classes for including text in a figure.
<EFBFBD>N<>)<04>artist<73>cbook<6F> docstring<6E>rcParams)<01>Artist)<01>FontProperties)<01>Line2D)<03>FancyArrowPatch<63>FancyBboxPatch<63> Rectangle)<01>TextPath)<06>Affine2D<32>Bbox<6F>BboxBase<73>BboxTransformTo<54>IdentityTransform<72> Transformc csB|<00><00>r8|<00><01>}z|<00>|<00><03><00>|VWd|<00>|<01>Xn|VdS)zLTemporarily inserts newlines to the text if the wrap option is enabled.
N)<04>get_wrap<61>get_text<78>set_text<78>_get_wrapped_text)<02>textobjZold_text<78>r<00>7/tmp/pip-install-i8dhxrtk/matplotlib/matplotlib/text.py<70>
_wrap_texts
rc Cs`y t|<00>dSttfk
rZt<03>|d<02>s4|dkr8dSt<03>|d<05>rHdStd<07>|<00><01><01>YnXdS)z<>
Return the text angle as float between 0 and 360 degrees.
*rotation* may be 'horizontal', 'vertical', or a numeric value in degrees.
ihZ
horizontalNgZverticalg<00>V@zRrotation is {!r}; expected either 'horizontal', 'vertical', numeric value, or None)<06>float<61>
ValueError<EFBFBD> TypeErrorrZ
_str_equal<EFBFBD>format)<01>rotationrrr<00> get_rotation)s  r!cCs<>g}g}t<00>|<00><02><00>}t<03><00>| <00>}|<00>|<01>\}}}xd|D]\\} }
} } |
\} }|<05>| | f<02>\}}||8}|| ||}}|<02>||g<02>|<03>||g<02>q:Wt|<02>t|<03>}}t |<02>|t |<03>|}}t<03><00>|<04><01>||f<02>\}}||||fS)z<>
Calculate the bounding box of the text. Unlike
:meth:`matplotlib.text.Text.get_extents` method, The bbox size of
the text before the rotation is calculated.
)
<EFBFBD>np<6E>deg2radr!r<00>rotate<74> _get_layout<75>transform_point<6E>extend<6E>min<69>max)<19>text<78>rendererZ projected_xsZ projected_ys<79>theta<74>tr<74>_<>parts<74>d<>t<>wh<77>x<>y<>w<>hZxt1Zyt1Zxt2Zyt2Zxt_boxZyt_box<6F>w_box<6F>h_box<6F>x_box<6F>y_boxrrr<00> _get_textbox<s r;<00>c<>familyZfont_propertiesZha<68>ma<6D>name<6D>size<7A>stretch<63>style<6C>variant<6E>va<76>weight) <0C>colorZ
fontfamily<EFBFBD>fontproperties<65>horizontalalignment<6E>multialignment<6E>fontname<6D>fontsizeZ fontstretch<63> fontstyleZ fontvariant<6E>verticalalignmentZ
fontweightc sdeZdZdZdZe<05>d<03>Zdd<05>Zd<>d d <0A>Z <09>fdd<0F>Z
<EFBFBD>fdd<11>Z dd<13>Z dd<15>Z dd<17>Zdd<19>Zdd<1B>Zdd<1D>Zdd<1F>Zd d!<21>Zd"d#<23>Zd$d%<25>Zd&d'<27>Zd(d)<29>Zd*d+<2B>Z<18>fd,d-<2D>Zd<><64>fd.d/<2F> Z<1A>fd0d1<64>Zd2d3<64>Zd4d5<64>Zd6d7<64>Zd8d9<64>Zd:d;<3B>Z d<d=<3D>Z!e"j#d>d?<3F><00>Z$d@dA<64>Z%dBdC<64>Z&dDdE<64>Z'dFdG<64>Z(dHdI<64>Z)dJdK<64>Z*dLdM<64>Z+dNdO<64>Z,dPdQ<64>Z-dRdS<64>Z.dTdU<64>Z/dVdW<64>Z0d<30>dXdY<64>Z1dZd[<5B>Z2d\d]<5D>Z3d<33>d^d_<64>Z4d`da<64>Z5dbdc<64>Z6ddde<64>Z7dfdg<64>Z8dhdi<64>Z9djdk<64>Z:dldm<64>Z;dndo<64>Z<dpdq<64>Z=drds<64>Z>dtdu<64>Z?dvdw<64>Z@dxdy<64>ZAdzd{<7B>ZBd|d}<7D>ZCd~d<64>ZDd<44>d<EFBFBD><64>ZEeFe<05>Gd<47><64>d<>d<EFBFBD>d<EFBFBD><64><01><01>ZHd<48>d<EFBFBD><64>ZId<49>d<EFBFBD><64>ZJd<4A>d<EFBFBD><64>ZKd<4B>d<EFBFBD><64>ZLd<4C>d<EFBFBD><64>ZM<5A>ZNS)<29><>TextzAHandle storing and drawing of text in window or data coordinates.<2E><00>2cCsd|j|jt|j<03>fS)NzText(%s, %s, %s))<04>_x<5F>_y<5F>repr<70>_text)<01>selfrrr<00>__repr__vsz Text.__repr__r<00>N<>baseline<6E>leftFcKs<>t<00>|<00>|||_|_|dkr(td}|dkr8t<05>}nt|t<07>rJt|<08>}d|_|<00> |<03>|<00>
|<04>|<00> | <0C>|<00> | <0A>|<00> |<05>|<00>|<06>||_| |_||_d|_d|_|
dkr<>d}
|
|_|<00>| <0B>|<00>|<0E>dS)zv
Create a `.Text` instance at *x*, *y* with string *text*.
Valid kwargs are
%(Text)s
Nz
text.colorrWg333333<33>?)r<00>__init__rQrRrr<00>
isinstance<EFBFBD>strrTr<00> set_color<6F>
set_usetex<EFBFBD>set_wrap<61>set_verticalalignment<6E>set_horizontalalignment<6E>_multialignment<6E> _rotation<6F>_fontproperties<65> _bbox_patch<63> _renderer<65> _linespacing<6E>set_rotation_mode<64>update)rUr3r4r*rFrMrHrIrGr <00> linespacing<6E> rotation_mode<64>usetex<65>wrap<61>kwargsrrrrZys2








z Text.__init__cs4t<00>}|<01>d|<02>}t<02><00>|<01>||k r0|<00>|<03>dS)z6
Update properties from a dictionary.
<20>bboxN)<05>object<63>pop<6F>superri<00>set_bbox)rUrn<00>sentinelro)<01> __class__rrri<00>s
  z Text.updatecst<00><00><01>}d|d<|S)Nrf)rr<00> __getstate__)rUr0)rurrrv<00>s
zText.__getstate__cCs<>|jdk r|<00>||<01>S|<00><01>r(|jdkr0difS|<00><03>j\}}}}||||}}|j|j}} ||kot|kno<>|| ko<>|kn}
i} |jr<>|j<07>|<01>\} } |
p<EFBFBD>| }
| | d<|
| fS)z<>Test whether the mouse event occurred in the patch.
In the case of text, a hit is true anywhere in the
axis-aligned bounding-box containing the text.
Returns
-------
bool : bool
NFZ
bbox_patch) Z _contains<6E> get_visiblerf<00>get_window_extent<6E>boundsr3r4re<00>contains)rUZ
mouseevent<EFBFBD>l<>br5r6<00>rr1r3r4ZinsideZcattrZ patch_insideZ patch_cattrrrrrz<00>s
 0z Text.containscCs|<00><00>\}}|<00><01><00>||f<02>S)zW
Get the (possibly unit converted) transformed x, y in display coords.
)<03>get_unitless_position<6F> get_transformr&)rUr3r4rrr<00>_get_xy_display<61>s zText._get_xy_displaycCs|jdk r|jS|jSdS)N)rb<00>_horizontalalignment)rUrrr<00>_get_multialignment<6E>s
zText._get_multialignmentcCs
t|j<01>S)z*Return the text angle as float in degrees.)r!rc)rUrrrr!<00>szText.get_rotationcCs2|dks|dkr||_ntdt|<01><00><01>d|_dS)aW
Set text rotation mode.
Parameters
----------
m : {None, 'default', 'anchor'}
If ``None`` or ``"default"``, the text will be first rotated, then
aligned according to their horizontal and vertical alignments. If
``"anchor"``, then alignment occurs before rotation.
N)<02>anchor<6F>defaultzUnknown rotation_mode : %sT)<04>_rotation_moderrS<00>stale)rU<00>mrrrrh<00>s zText.set_rotation_modecCs|jS)zGet the text rotation mode.)r<>)rUrrr<00>get_rotation_mode<64>szText.get_rotation_modecCsZt<00>||<01>|j|_|j|_|j|_|j|_|j<06><07>|_|j|_|j |_ |j
|_
d|_ dS)z#Copy properties from other to self.TN) r<00> update_from<6F>_colorrb<00>_verticalalignmentr<74>rd<00>copyrcZ_pickerrgr<>)rU<00>otherrrrr<>s  zText.update_fromc-s6|j|d<01>}||jkr |j|Sd\}}|<00><02><00>d<03>}g}g}g}g} |jd|j|<00><06>r\dndd<07>\}
} } | | |j} x<>t|<05>D]<5D>\}}|<00> |<0F>\}}|r<>|j||j|d<07>\}}}n d}}}t
|| <0B>}t
|| <0C>}|<06> |<12>|<07> |<13>|||}|dk<02>r || }n|t
| |||j<00>8}|<08> |<03>| <09> |<04>||8}q<>W|}t
|<06><01>d}<17>}d}| d |}||}t <0C><00> |<00><0E><00>}|<00><0F>}|d
k<02>r<>d d <0C>t|| <09>D<00>}nJ|d k<02>fdd <0C>t|| |<06>D<00>}n$|dk<02>r<><72>fdd <0C>t|| |<06>D<00>}t<11>||f||f||f||fg<04>}|<1C>|<1F>} | dd<11>df<00><14>}| dd<11>df<00>
<EFBFBD>}| dd<11>df<00><14>}| dd<11>df<00>
<EFBFBD>}||<00>||}|j}!|j}"|<00><17>}#|#dk<03>r&|!d k<02>r<>||d}$n|!dk<02>r<>|}$n|}$|"d k<02>r<>||d}%nD|"dk<02>r<>|}%n4|"dk<02>r||}%n |"dk<02>r |||d}%n|}%n<>|d\}&}'|d\}(})|!d k<02>rV|&|(d}$n|!dk<02>rf|(}$n|&}$|"d k<02>r<>|'|)d}%n@|"dk<02>r<>|)}%n0|"dk<02>r<>|)|}%n|"dk<02>r<>|)|d}%n|'}%|<1C>|$|%f<02>\}$}%||$8}||%8}t<19>||<1A>|<1B>}*|<1C>|<1E>|$|%f}+|*tt|t||<07>f|+j<1C><02><00>|f},|,|j|<|,S)z<>
return the extent (bbox) of the text together with
multiple-alignment information. Note that it returns an extent
of a rotated text when necessary.
)r+)gg<00>
<EFBFBD>lp<6C>TeXF)<01>ismathr<00><><EFBFBD><EFBFBD><EFBFBD>rYcSsg|]\}}||f<02>qSrr)<03>.0r3r4rrr<00>
<listcomp>Wsz$Text._get_layout.<locals>.<listcomp><3E>centercs*g|]"\}}}|<01>d|d|f<02>qS)<01>r)r<>r3r4r5)<01>widthrrr<>Ys<01>rightcs"g|]\}}}|<01>||f<02>qSrr)r<>r3r4r5)r<>rrr<>\sNrr<>r<><00>toprX<00>center_baselineg@)<1D> get_prop_tup<75>_cachedr<00>split<69>get_text_width_height_descentrd<00>
get_usetexrg<00> enumerate<74>_preprocess_mathr)<00>appendrZ
rotate_degr!r<><00>zipr"<00>array<61> transformr(r<>r<>r<>r&r<00> from_bounds<64>list<73>T)-rUr+<00>keyZthisxZthisy<73>lines<65>wsZhs<68>xsZysr.Zlp_hZlp_dZmin_dy<64>i<>line<6E>
clean_liner<EFBFBD>r5r6r0rX<00>descentZxminZxmaxZymaxZymin<69>height<68>MZmalignZ offset_layoutZ corners_horizZcorners_rotatedZhalignZvalignrkZoffsetxZoffsetyZxmin1Zymin1Zxmax1Zymax1roZxys<79>retr)r<>rr%s<> 

 



 
 

  













  






"
zText._get_layoutcCs<>|dk r<>|<01><00>}|<02>dd<01>}|<02>dd<01>}|dkrNd}|dkr@d}||<00><02>}n |dkrZd}t|t<04>rxd|krx|d|7}|<02>dd<01>}td ||t<06>d <0B>|<02><02>|_nd|_|<00><08>dS) a<>
Draw a bounding box around self.
Parameters
----------
rectprops : dict with properties for `.patches.FancyBboxPatch`
The default boxstyle is 'square'. The mutation
scale of the `.patches.FancyBboxPatch` is set to the fontsize.
Examples
--------
::
t.set_bbox(dict(facecolor='red', alpha=0.5))
N<>boxstyle<6C>padZsquare<72>g333333<33>?z
,pad=%0.2f<EFBFBD>bbox_transmuter<65>gg<00><00>?)r<>r<>r<>)r<>r<>r<>) r<>rq<00>get_sizer[r\r rre<00>_update_clip_properties)rUZ rectprops<70>propsr<73>r<>r<>rrrrs<00>s.     z Text.set_bboxcCs|jS)zf
Return the bbox Patch, or None if the `.patches.FancyBboxPatch`
is not made.
)re)rUrrr<00>get_bbox_patch<63>szText.get_bbox_patchc Cs<>|jr<>|<00><01>}t|<00>|j<04><01>}t|<00>|j<06><01>}|<02>||f<02>\}}t||<01>\}}}}|j<00> dd||<08>t
<EFBFBD> |<00> <0C><00>} t <0A><00>| <09>}
|
<EFBFBD>||||<00>}
|j<00>|
<EFBFBD>|<01>|<00><12><00>} |j<00>| <0B>dS)z<>
Update the location and the size of the bbox.
This method should be used when the position and size of the bbox needs
to be updated before actually drawing the bbox.
gN)rerr<00>convert_xunitsrQ<00>convert_yunitsrRr&r;<00>
set_boundsr"r#r!rr$<00> translate<74> set_transform<72>points_to_pixelsr<73><00>set_mutation_scale) rUr+<00>trans<6E>posx<73>posyr9r:r7r8r,r-<00>fontsize_in_pixelrrr<00>update_bbox_position_size<7A>s  zText.update_bbox_position_sizec Cs<>t||<01>\}}}}|j<01>dd||<07>t<03>|<00><05><00>}t<06><00>|<08>} | <09>||||<00>} |j<01> | <09>|<01>
|<00> <0B><00>}
|j<01> |
<EFBFBD>|j<01> |<01>dS)zi
Update the location and size of the bbox (`.patches.FancyBboxPatch`),
and draw.
gN)r;rer<>r"r#r!rr$r<>r<>r<>r<>r<><00>draw) rUr+r<>r<>r9r:r7r8r,r-r<>rrr<00>
_draw_bbox<EFBFBD>s   zText._draw_bboxcCs*t|j|j|jd<01>}|jr&|j<04>|<01>dS)N)Zclip_boxZ clip_pathZclip_on)<06>dict<63>clipboxZ _clippathZ_cliponreri)rUZ clippropsrrrr<>s

zText._update_clip_propertiescst<00><00>|<01>|<00><02>dS)N)rr<00> set_clip_boxr<78>)rUr<>)rurrr<>s zText.set_clip_boxcst<00><00>||<02>|<00><02>dS)N)rr<00> set_clip_pathr<68>)rU<00>pathr<68>)rurrr<>szText.set_clip_pathcst<00><00>|<01>|<00><02>dS)N)rr<00> set_clip_onr<6E>)rUr|)rurrr<>s zText.set_clip_oncCs|jS)z'Return the wrapping state for the text.)<01>_wrap)rUrrrr$sz Text.get_wrapcCs
||_dS)zhSet the wrapping state for the text.
Parameters
----------
wrap : bool
N)r<>)rUrmrrrr_(sz Text.set_wrapc Cs<>|<00><00><00>|<00><02><00>\}}|<00><03><00><04>}|<00><05>}|<00>d<01>|<00><07>}|<00>||||<03>}|<00>d|d|||<03>}|dkrr|}n|dkr<>|}ndt ||<07>}|S)zk
Return the maximum line width for wrapping text based on the current
orientation.
r<><00><>ihrYr<>r<>)
rr<><00> get_position<6F>
get_figurerx<00>get_horizontalalignmentrhr!<00>_get_dist_to_boxr() rU<00>x0<78>y0<79>
figure_box<EFBFBD> alignmentr rYr<><00>
line_widthrrr<00>_get_wrap_line_width1s 
zText._get_wrap_line_widthcCs|dkrD|d}|t<00>t<00>|<05><01>}|j|t<00>t<00>d|<00><01>}n<>|dkr<>|d}|t<00>t<00>|<05><01>}|t<00>t<00>d|<00><01>}n||dkr<>|d}|j|t<00>t<00>|<05><01>}|t<00>t<00>d|<00><01>}n8|j|t<00>t<00>|<01><01>}|j|t<00>t<00>d|<00><01>}t||<07>S)zr
Return the distance from the given points to the boundaries of a
rotated box, in pixels.
i<00>Zr<>)<06>math<74>cos<6F>radians<6E>x1<78>y1r()rUr r<>r<>r<>Zquad<61>h1<68>h2rrrr<>Ks zText._get_dist_to_boxcCs$|j<00>||<00><02>d<01>\}}}t<03>|<02>S)zE
Return the width of a given text string, in pixels.
F)rfr<><00>get_fontpropertiesr<73><00>ceil)rUr*r5r6r0rrr<00>_get_rendered_text_widthbs
 zText._get_rendered_text_widthcCs<>|<00><00>r|<00><01>S|<00><02>}d}d}x<>|<00><01><00>d<02>D]|}|<04>d<03>}xltt|<05><01>D]\}|<00>|d||<00>}||ksv|dkr<>||d7}d}|dkr<>||}qL|d||7}qLWq0W||S)z<>
Return a copy of the text with new lines added, so that
the text is wrapped relative to the parent figure.
rW<00> r<>r)r<>rr<>r<><00>range<67>lenr<6E>)rUr<>Z wrapped_strr<72><00>wordZ sub_wordsr<73>Z current_widthrrrrls"
 
zText._get_wrapped_textc Cs|dk r||_|<00><01>sdS|<00><02>dkr*dS|<01>d|<00><04><00>t|<00><01><01><>}|<02>|<01>\}}}|<02><07>}t|<02> |j
<EFBFBD><01>}t|<02> |j <0C><01>}|<06> ||f<02>\}}t<0E>|<07>r<>t<0E>|<08>s<>t<10>d<04>dS|<01><12>\} }
|jr<>|<02>|||<08>|<01><15>} | <0B>|<02><17><00>| <0B>|<02><19><00>| <0B>|j<1B>|<02>| <0B>|<02><1D>} x<>|D]<5D>\} }}}t|<04>dk<02>r8|nd}||}||}|<01><1F><00>r^|
|}|<02> | <0A>\}}|<02>!<21><00>r<>ddl"m#}||<02>!<21>|<01>}n|}|<02>$<24><00>r<>|j%| ||||j&| |d<08>n|j'| ||||j&| ||d <09><00>qWWdQRX| <0B>(<28>|<01>)d<03>d
|_*dS) zC
Draws the `.Text` object to the given *renderer*.
NrWr*z%posx and posy should be finite valuesrr)<01>PathEffectRenderer)<01>mtext)r<>r<>F)+rfrwrZ
open_groupZget_gidrr%rrr<>rQr<>rRr&r"<00>isfinite<74>_log<6F>warningZget_canvas_width_heightrer<>Znew_gcZset_foreground<6E> get_colorZ set_alphaZ get_alphaZset_url<72>_urlZ _set_gc_clipr!r<>Zflipyr<79>Zget_path_effectsZmatplotlib.patheffectsr<73>r<>Zdraw_texrdZ draw_textZrestoreZ close_groupr<70>)rUr+rro<00>infor<6F>r<>r<>r<>ZcanvaswZcanvash<73>gc<67>angler<65>r2r3r4r<>r<>r<>r<>Z textrendererrrrr<><00>s^  
  


 
 
 
z Text.drawcCs|jS)zReturn the color of the text)r<>)rUrrrr<><00>szText.get_colorcCs|jS)z0Return the `.font_manager.FontProperties` object)rd)rUrrrr<><00>szText.get_fontpropertiescCs
|j<00><01>S)z<>
Return the list of font families used for font lookup
See Also
--------
.font_manager.FontProperties.get_family
)rdZ
get_family)rUrrr<00>get_fontfamily<6C>szText.get_fontfamilycCs
|j<00><01>S)z<>
Return the font name as string
See Also
--------
.font_manager.FontProperties.get_name
)rd<00>get_name)rUrrr<00> get_fontname<6D>szText.get_fontnamecCs
|j<00><01>S)z<>
Return the font style as string
See Also
--------
.font_manager.FontProperties.get_style
)rdZ get_style)rUrrr<00> get_fontstyle<6C>szText.get_fontstylecCs
|j<00><01>S)z<>
Return the font size as integer
See Also
--------
.font_manager.FontProperties.get_size_in_points
)rdZget_size_in_points)rUrrr<00> get_fontsize<7A>szText.get_fontsizecCs
|j<00><01>S)z<>
Return the font variant as a string
See Also
--------
.font_manager.FontProperties.get_variant
)rdZ get_variant)rUrrr<00>get_fontvariantszText.get_fontvariantcCs
|j<00><01>S)z<>
Get the font weight as string or number
See Also
--------
.font_manager.FontProperties.get_weight
)rdZ
get_weight)rUrrr<00>get_fontweightszText.get_fontweightcCs
|j<00><01>S)z<>
Get the font stretch as a string or number
See Also
--------
.font_manager.FontProperties.get_stretch
)rd<00> get_stretch)rUrrrr<>szText.get_stretchcCs|jS)zq
Return the horizontal alignment as string. Will be one of
'left', 'center' or 'right'.
)r<>)rUrrrr<>"szText.get_horizontalalignmentcCs(t|<00>|j<02><01>}t|<00>|j<04><01>}||fS)z>Return the unitless position of the text as a tuple (*x*, *y*))rr<>rQr<>rR)rUr3r4rrrr~)szText.get_unitless_positioncCs |j|jfS)z5Return the position of the text as a tuple (*x*, *y*))rQrR)rUrrrr<>1szText.get_positionc CsR|<00><00>\}}|p|j}|||<00><02>|j|j|jt|j<07>|j|j |j
j t <0C> |<01>|jf S)z<>
Return a hashable tuple of properties.
Not intended to be human readable, but useful for backends who
want to cache derived information about text (e.g., layouts) and
need to know if the text has changed.
)r~rfrr<>r<>r<><00>hashrdrcr<><00>figure<72>dpi<70>weakref<65>refrg)rUr+r3r4rrrr<>7s 
zText.get_prop_tupcCs|jS)zGet the text as string)rT)rUrrrrIsz Text.get_textcCs|jS)z{
Return the vertical alignment as string. Will be one of
'top', 'center', 'bottom' or 'baseline'.
)r<>)rUrrr<00>get_verticalalignmentMszText.get_verticalalignmentc Cs<>|<00><00>st<01><02>S|dk r(|jj}||j_|<00><05>dkrP|<00><06>\}}t<01>||dd<03>S|dk r^||_|jdkrr|jj |_|jdkr<>t
d<04><01>|<00> |j<08>\}}}|<00> <0C>\} }
|<00> <0A><00>| |
f<02>\} }
|<06>| |
<EFBFBD>}|dk r<>||j_|S)a<>
Return the `Bbox` bounding the text, in display units.
In addition to being used internally, this is useful for specifying
clickable regions in a png file on a web page.
Parameters
----------
renderer : Renderer, optional
A renderer is needed to compute the bounding box. If the artist
has already been drawn, the renderer is cached; thus, it is only
necessary to pass this argument when calling `get_window_extent`
before the first `draw`. In practice, it is usually easier to
trigger a draw first (e.g. by saving the figure).
dpi : float, optional
The dpi value for computing the bbox, defaults to
``self.figure.dpi`` (*not* the renderer dpi); should be set e.g. if
to match regions with a figure saved with a custom dpi value.
NrWrz%Cannot get window extent w/o renderer)rwr<00>unitrrrr<>r<>rf<00>_cachedRenderer<65> RuntimeErrorr%r~rr&Z
translated) rUr+rZdpi_origZtx<74>tyror<>r<>r3r4rrrrxTs*  


  zText.get_window_extentcCsB|jdkr|<00>t||d<02><02>n|j<00>t|d<03><01>|<00><04>d|_dS)z<>
Set the background color of the text by updating the bbox.
Parameters
----------
color : color
See Also
--------
.set_bbox : To change the position of the bounding box
N)<02> facecolorZ edgecolor)r T)rersr<>rir<>r<>)rUrFrrr<00>set_backgroundcolor<6F>s
zText.set_backgroundcolorcCs:y t|<01>Wntk
r(t|<01>}YnX||_d|_dS)zs
Set the foreground color of the text
Parameters
----------
color : color
TN)r<>r<00>tupler<65>r<>)rUrFrrrr]<00>s  zText.set_colorcCs$tjdddg|d<04>||_d|_dS)z<>
Set the horizontal alignment to one of
Parameters
----------
align : {'center', 'right', 'left'}
r<>r<>rY)<01>alignTN)r<00>_check_in_listr<74>r<>)rUr rrrra<00>szText.set_horizontalalignmentcCs$tjdddg|d<04>||_d|_dS)aS
Set the alignment for multiple lines layout. The layout of the
bounding box of all the lines is determined by the horizontalalignment
and verticalalignment properties, but the multiline text within that
box can be
Parameters
----------
align : {'left', 'right', 'center'}
r<>r<>rY)r TN)rr rbr<>)rUr rrr<00>set_multialignment<6E>s zText.set_multialignmentcCs||_d|_dS)z<>
Set the line spacing as a multiple of the font size.
Default is 1.2.
Parameters
----------
spacing : float (multiple of font size)
TN)rgr<>)rU<00>spacingrrr<00>set_linespacing<6E>s zText.set_linespacingcCs|j<00>|<01>d|_dS)a<>
Set the font family. May be either a single string, or a list of
strings in decreasing priority. Each string may be either a real font
name or a generic font class name. If the latter, the specific font
names will be looked up in the corresponding rcParams.
If a `Text` instance is constructed with ``fontfamily=None``, then the
font is set to :rc:`font.family`, and the
same is done when `set_fontfamily()` is called on an existing
`Text` instance.
Parameters
----------
fontname : {FONTNAME, 'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'}
See Also
--------
.font_manager.FontProperties.set_family
TN)rd<00>
set_familyr<EFBFBD>)rUrJrrr<00>set_fontfamily<6C>s zText.set_fontfamilycCs|j<00>|<01>d|_dS)z<>
Set the font variant, either 'normal' or 'small-caps'.
Parameters
----------
variant : {'normal', 'small-caps'}
See Also
--------
.font_manager.FontProperties.set_variant
TN)rdZ set_variantr<74>)rUrCrrr<00>set_fontvariant<6E>s zText.set_fontvariantcCs|j<00>|<01>d|_dS)z<>
Set the font style.
Parameters
----------
fontstyle : {'normal', 'italic', 'oblique'}
See Also
--------
.font_manager.FontProperties.set_style
TN)rdZ set_styler<65>)rUrLrrr<00> set_fontstyle<6C>s zText.set_fontstylecCs|j<00>|<01>d|_dS)aw
Set the font size. May be either a size string, relative to
the default font size, or an absolute font size in points.
Parameters
----------
fontsize : {size in points, 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
See Also
--------
.font_manager.FontProperties.set_size
TN)rdZset_sizer<65>)rUrKrrr<00> set_fontsizes zText.set_fontsizecCs|j<00>|<01>d|_dS)ab
Set the font weight.
Parameters
----------
weight : {a numeric value in range 0-1000, 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}
See Also
--------
.font_manager.FontProperties.set_weight
TN)rdZ
set_weightr<EFBFBD>)rUrErrr<00>set_fontweights zText.set_fontweightcCs|j<00>|<01>d|_dS)a<>
Set the font stretch (horizontal condensation or expansion).
Parameters
----------
stretch : {a numeric value in range 0-1000, 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}
See Also
--------
.font_manager.FontProperties.set_stretch
TN)rdZ set_stretchr<68>)rUrArrr<00>set_fontstretch%s zText.set_fontstretchcCs |<00>|d<00>|<00>|d<00>dS)z}
Set the (*x*, *y*) position of the text.
Parameters
----------
xy : (float, float)
rrN)<02>set_x<5F>set_y)rU<00>xyrrr<00> set_position6szText.set_positioncCs||_d|_dS)zl
Set the *x* position of the text.
Parameters
----------
x : float
TN)rQr<>)rUr3rrrrAsz
Text.set_xcCs||_d|_dS)zl
Set the *y* position of the text.
Parameters
----------
y : float
TN)rRr<>)rUr4rrrrLsz
Text.set_ycCs||_d|_dS)z<>
Set the rotation of the text.
Parameters
----------
s : {angle in degrees, 'vertical', 'horizontal'}
TN)rcr<>)rU<00>srrr<00> set_rotationWszText.set_rotationcCs(tjdddddg|d<06>||_d|_dS) z<>
Set the vertical alignment
Parameters
----------
align : {'center', 'top', 'bottom', 'baseline', 'center_baseline'}
r<>Zbottomr<6D>rXr<>)r TN)rr r<>r<>)rUr rrrr`bs
 zText.set_verticalalignmentcCs*|dkr d}||jkr&t|<01>|_d|_dS)a 
Set the text string *s*.
It may contain newlines (``\n``) or math in LaTeX syntax.
Parameters
----------
s : object
Any object gets converted to its `str`, except ``None`` which
becomes ``''``.
NrWT)rTr\r<>)rUrrrrrps


z Text.set_textz3.1cCsN|dkrtd}|r(|dkr d}|dfSt<01>|<00>r:|dfS|<00>dd<08>d fSdS)
aS
Returns a cleaned string and a boolean flag.
The flag indicates if the given string *s* contains any mathtext,
determined by counting unescaped dollar signs. If no mathtext
is present, the cleaned string has its dollar signs unescaped.
If usetex is on, the flag always has the value "TeX".
Nz text.usetexr<78>z\ r<>Tz\$<24>$F)rr<00> is_math_text<78>replace)rrlrrrr<00>s 
zText.is_math_textcCsB|<00><00>r|dkrd}|dfSt<01>|<01>r.|dfS|<01>dd<06>dfSdS) a<>
Return the string *s* after mathtext preprocessing, and the kind of
mathtext support needed.
- If *self* is configured to use TeX, return *s* unchanged except that
a single space gets escaped, and the flag "TeX".
- Otherwise, if *s* is mathtext (has an even number of unescaped dollar
signs), return *s* and the flag True.
- Otherwise, return *s* with dollar signs unescaped, and the flag
False.
r<>z\ r<>Tz\$rFN)r<>rrr )rUrrrrr<><00>s 
zText._preprocess_mathcCs&t|t<01>rt|<01>}|<01><03>|_d|_dS)z<>
Set the font properties that control the text.
Parameters
----------
fp : `.font_manager.FontProperties`
TN)r[r\rr<>rdr<>)rU<00>fprrr<00>set_fontproperties<65>s

zText.set_fontpropertiescCs(|dkrtd|_n
t|<01>|_d|_dS)z<>
Parameters
----------
usetex : bool or None
Whether to render using TeX, ``None`` means to use
:rc:`text.usetex`.
Nz text.usetexT)r<00>_usetex<65>boolr<6C>)rUrlrrrr^<00>s 
zText.set_usetexcCs|jS)z9Return whether this `Text` object uses TeX for rendering.)r#)rUrrrr<><00>szText.get_usetexcCs
|<00>|<01>S)a-
Alias for `set_family`.
One-way alias only: the getter differs.
Parameters
----------
fontname : {FONTNAME, 'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'}
See Also
--------
.font_manager.FontProperties.set_family
)r)rUrJrrr<00> set_fontname<6D>szText.set_fontname) rrrWNrXrYNNNNNNF)N)N)NN)N)O<>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__Zzorderr<00>maxdictr<74>rVrZrirvrzr<>r<>r!rhr<>r<>r%rsr<>r<>r<>r<>r<>r<>r<>rr_r<>r<>r<>rr<00>allow_rasterizationr<6E>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r~r<>r<>rrrxr
r]rarrrrrrrrrrrrr`r<00> staticmethod<6F>
deprecatedrr<>r"r^r<>r%<00> __classcell__rr)rurrNbs<>

&   0   
#E








.       rN)rNz3.1<EFBFBD>
Annotation)<01> alternativec@s<>eZdZdZdZdd<04>Zd9d d <0C>Zd d<0E>Zdd<10>Zd:dd<12>Zdd<14>Z dd<16>Z
d;dd<18>Z dd<1A>Z dd<1C>Z dd<1E>Zdd <20>Zd!d"<22>Zd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>Zd+d,<2C>Zd-d.<2E>Zd/d0<64>Zd1d2<64>Zd3d4<64>Zd5d6<64>Zd7d8<64>ZdS)<<3C> TextWithDashab
This is basically a :class:`~matplotlib.text.Text` with a dash
(drawn with a :class:`~matplotlib.lines.Line2D`) before/after
it. It is intended to be a drop-in replacement for
:class:`~matplotlib.text.Text`, and should behave identically to
it when *dashlength* = 0.0.
The dash always comes between the point specified by
:meth:`~matplotlib.text.Text.set_position` and the text. When a
dash exists, the text alignment arguments (*horizontalalignment*,
*verticalalignment*) are ignored.
*dashlength* is the length of the dash in canvas units.
(default = 0.0).
*dashdirection* is one of 0 or 1, where 0 draws the dash after the
text and 1 before. (default = 0).
*dashrotation* specifies the rotation of the dash, and should
generally stay *None*. In this case
:meth:`~matplotlib.text.TextWithDash.get_dashrotation` returns
:meth:`~matplotlib.text.Text.get_rotation`. (i.e., the dash takes
its rotation from the text's rotation). Because the text center is
projected onto the dash, major deviations in the rotation cause
what may be considered visually unappealing results.
(default = *None*)
*dashpad* is a padding length to add (or subtract) space
between the text and the dash, in canvas units.
(default = 3)
*dashpush* "pushes" the dash and text away from the point
specified by :meth:`~matplotlib.text.Text.set_position` by the
amount in canvas units. (default = 0)
.. note::
The alignment of the two objects is based on the bounding box
of the :class:`~matplotlib.text.Text`, as obtained by
:meth:`~matplotlib.artist.Artist.get_window_extent`. This, in
turn, appears to depend on the font metrics as given by the
rendering backend. Hence the quality of the "centering" of the
label text with respect to the dash varies depending on the
backend used.
.. note::
I'm not sure that I got the
:meth:`~matplotlib.text.TextWithDash.get_window_extent` right,
or whether that's sufficient for providing the object bounding
box.
Z textwithdashcCsd|j|j|jfS)NzTextWithDash(%g, %g, %r))rQrRrT)rUrrr<00>__str__szTextWithDash.__str__rrWNr<4E><00>rOc Csptj|||||||||| |
d<01> t||f||fddd<04>|_t|<01>|_t|<02>|_| |_| |_| |_ ||_
||_ dS)N)
r3r4r*rFrMrHrIrGr rj<00>k<>-)ZxdataZydatarFZ linestyle) rNrZr <00>dashliner<00>_dashx<68>_dashy<68> _dashlength<74>_dashdirection<6F> _dashrotation<6F>_dashpad<61> _dashpush)rUr3r4r*rFrMrHrIrGr rj<00>
dashlength<EFBFBD> dashdirection<6F> dashrotation<6F>dashpad<61>dashpushrrrrZ!s$


zTextWithDash.__init__cCs(t|<00>|j<02><01>}t|<00>|j<04><01>}||fS)z>Return the unitless position of the text as a tuple (*x*, *y*))rr<>r7r<>r8)rUr3r4rrrr~Msz"TextWithDash.get_unitless_positioncCs |j|jfS)z5Return the position of the text as a tuple (*x*, *y*))r7r8)rUrrrr<>UszTextWithDash.get_positionc CsFdd<02>tj||d<03>D<00>}|<02>|j|j|j|j|j|j|j g<07>t
|<02>S)z<>
Return a hashable tuple of properties.
Not intended to be human readable, but useful for backends who
want to cache derived information about text (e.g., layouts) and
need to know if the text has changed.
cSsg|]}|<01>qSrr)r<><00>prrrr<>csz-TextWithDash.get_prop_tup.<locals>.<listcomp>)r+) rNr<>r'rQrRr9r:r;r<r=r )rUr+r<>rrrr<>[s
 
zTextWithDash.get_prop_tupcCs8|<00>|<01>t<01>||<01>|<00><03>dkr.|j<04>|<01>d|_dS)zP
Draw the :class:`TextWithDash` object to the given *renderer*.
gFN)<06> update_coordsrNr<><00>get_dashlengthr6r<>)rUr+rrrr<>is

   zTextWithDash.drawc! Cs,|<00><00>\}}|<00><01>}|dkr.|||_|_dS|<00><04>}|<00><05>}|<00><06>}|<00><07>}t|<05>} t j
| d|d}
t <09> |
<EFBFBD>t <09> |
<EFBFBD>} } |<00> <0A>} | <0A>||f<02>}t <09>| | g<02>}|||}||||}| <0A><10>}|<12>t|<10><01>\}}|<12>t|<11><01>\}}|j<12>||f||f<02>tj||d<05>}|j|j}}| dk<02>r4|}d}nJ| dk<02>rHd}|}n6| | }|}||}||k<04>sr|| k<00>r~|}||}t <09>||g<02>d}|d|t <09>t <09>||<1D><02>9}||dd|}|<12>t|<1E><01>\}} || |_|_tj||d<05>}|<17><1A>|_|j<1B>t <09>|g<01>d<07>t<14>|d<08>t<14>|d<08>dS) z<>
Computes the actual *x*, *y* coordinates for text based on the
input *x*, *y* and the *dashlength*. Since the rotation is
with respect to the actual canvas's coordinates we need to map
back and forth.
gNg<00>f@r)r+r<>Fr<46>)r~rErQrR<00>get_dashrotation<6F>get_dashdirection<6F> get_dashpad<61> get_dashpushr!r"<00>pir<69><00>sinrr&r<><00>invertedr r6<00>set_datarNrxr<>r<><00>sqrt<72>dot<6F>frozen<65>_twd_window_extentZupdate_from_data_xyrar`)!rUr+ZdashxZdashyr>r@r?rArBr<>r,Z cos_thetaZ sin_thetar<61>ZcxyZcdZc1<63>c2Zinverser<65>r<><00>x2<78>y2Zwer5r6ZdxZdyZ tan_theta<74>cwdZcwZnewxZnewyrrrrDssZ  


 zTextWithDash.update_coordscCs.|<00>|<01>|<00><01>dkr$tj||d<02>S|jSdS)ao
Return a :class:`~matplotlib.transforms.Bbox` object bounding
the text, in display units.
In addition to being used internally, this is useful for
specifying clickable regions in a png file on a web page.
*renderer* defaults to the _renderer attribute of the text
object. This is not assigned until the first execution of
:meth:`draw`, so you must use this kwarg if you want
to call :meth:`get_window_extent` prior to the first
:meth:`draw`. For getting web page regions, it is
simpler to call the method after saving the figure.
g)r+N)rDrErNrxrQ)rUr+rrrrx<00>s
 zTextWithDash.get_window_extentcCs|jS)z-
Get the length of the dash.
)r9)rUrrrrE<00>szTextWithDash.get_dashlengthcCs||_d|_dS)zx
Set the length of the dash, in canvas units.
Parameters
----------
dl : float
TN)r9r<>)rU<00>dlrrr<00>set_dashlength<74>szTextWithDash.set_dashlengthcCs|jS)zO
Get the direction dash. 1 is before the text and 0 is after.
)r:)rUrrrrG<00>szTextWithDash.get_dashdirectioncCs||_d|_dS)a9
Set the direction of the dash following the text. 1 is before the text
and 0 is after. The default is 0, which is what you'd want for the
typical case of ticks below and on the left of the figure.
Parameters
----------
dd : int (1 is before, 0 is after)
TN)r:r<>)rU<00>ddrrr<00>set_dashdirection<6F>s
zTextWithDash.set_dashdirectioncCs|jdkr|<00><01>S|jSdS)z:
Get the rotation of the dash in degrees.
N)r;r!)rUrrrrFs
zTextWithDash.get_dashrotationcCs||_d|_dS)zu
Set the rotation of the dash, in degrees.
Parameters
----------
dr : float
TN)r;r<>)rUZdrrrr<00>set_dashrotation szTextWithDash.set_dashrotationcCs|jS)zW
Get the extra spacing between the dash and the text, in canvas units.
)r<)rUrrrrHszTextWithDash.get_dashpadcCs||_d|_dS)z<>
Set the "pad" of the TextWithDash, which is the extra spacing
between the dash and the text, in canvas units.
Parameters
----------
dp : float
TN)r<r<>)rU<00>dprrr<00> set_dashpads zTextWithDash.set_dashpadcCs|jS)zr
Get the extra spacing between the dash and the specified text
position, in canvas units.
)r=)rUrrrrI&szTextWithDash.get_dashpushcCs||_d|_dS)z<>
Set the "push" of the TextWithDash, which is the extra spacing between
the beginning of the dash and the specified position.
Parameters
----------
dp : float
TN)r=r<>)rUr[rrr<00> set_dashpush-s zTextWithDash.set_dashpushcCs |<00>|d<00>|<00>|d<00>dS)z<>
Set the (*x*, *y*) position of the :class:`TextWithDash`.
Parameters
----------
xy : (float, float)
rrN)rr)rUrrrrr9szTextWithDash.set_positioncCst|<01>|_d|_dS)z}
Set the *x* position of the :class:`TextWithDash`.
Parameters
----------
x : float
TN)rr7r<>)rUr3rrrrDs
zTextWithDash.set_xcCst|<01>|_d|_dS)z}
Set the *y* position of the :class:`TextWithDash`.
Parameters
----------
y : float
TN)rr8r<>)rUr4rrrrOs
zTextWithDash.set_ycCs"t<00>||<01>|j<02>|<01>d|_dS)z<>
Set the :class:`matplotlib.transforms.Transform` instance used
by this artist.
Parameters
----------
t : matplotlib.transforms.Transform
TN)rNr<>r6r<>)rUr1rrrr<>Zs  zTextWithDash.set_transformcCs|jS)z0return the figure instance the artist belongs to)r)rUrrrr<>gszTextWithDash.get_figurecCst<00>||<01>|j<02>|<01>dS)z<>
Set the figure instance the artist belongs to.
Parameters
----------
fig : matplotlib.figure.Figure
N)rN<00>
set_figurer6)rU<00>figrrrr^ks zTextWithDash.set_figure)rrrWNr<4E>r<>NNNNr3rNrOr)N)N)r&r'r(r)r2rZr~r<>r<>r<>rDrxrErWrGrYrFrZrHr\rIr]rrrr<>r<>r^rrrrr1<00>sL6


T
          r1)r1c@s:eZdZdZddd<04>Zdd<06>Zdd<08>Zd d
<EFBFBD>Zd d <0C>Zd S)<0F>
OffsetFromz3Callable helper class for working with `Annotation`<60>pointscCs||_||_|<00>|<03>dS)aY
Parameters
----------
artist : `Artist`, `BboxBase`, or `Transform`
The object to compute the offset from.
ref_coord : length 2 sequence
If `artist` is an `Artist` or `BboxBase`, this values is
the location to of the offset origin in fractions of the
`artist` bounding box.
If `artist` is a transform, the offset origin is the
transform applied to this value.
unit : {'points, 'pixels'}
The screen units to use (pixels or points) for the offset
input.
N)<03>_artist<73>
_ref_coord<EFBFBD>set_unit)rUrZ ref_coordrrrrrZ{szOffsetFrom.__init__cCstjddg|d<03>||_dS)z<>
The unit for input to the transform used by ``__call__``
Parameters
----------
unit : {'points', 'pixels'}
ra<00>pixels)rN)rr <00>_unit)rUrrrrrd<00>szOffsetFrom.set_unitcCs|jS)z8The unit for input to the transform used by ``__call__``)rf)rUrrr<00>get_unit<69>szOffsetFrom.get_unitcCs"|<00><00>}|dkrdS|<01>d<02>SdS)Nreg<00>?)rgr<>)rUr+rrrr<00>
_get_scale<EFBFBD>szOffsetFrom._get_scalec Cs<>t|jt<02>rL|j<01>|<01>}|j\}}}}|j\}}||||||} }
njt|jt<06>r<>|jj\}}}}|j\}}||||||} }
n(t|jt<07>r<>|j<01>|j<05>\} }
nt d<01><01>|<00>
|<01>} t <0B><00> | | <0B><02> | |
<EFBFBD>} | S)aX
Return the offset transform.
Parameters
----------
renderer : `RendererBase`
The renderer to use to compute the offset
Returns
-------
transform : `Transform`
Maps (x, y) in pixel or point units to screen units
relative to the given artist.
z unknown type)r[rbrrxryrcrrr&rrhr<00>scaler<65>) rUr+ror{r|r5r6ZxfZyfr3r4<00>scr-rrr<00>__call__<5F>s  
 
 
zOffsetFrom.__call__N)ra) r&r'r(r)rZrdrgrhrkrrrrr`ys 
 r`c@sXeZdZddd<04>Zdd<06>Zdd<08>Zd d
<EFBFBD>Zd d <0C>Zd d<0E>Zdd<10>Z dd<12>Z
ddd<15>Z dS)<18>_AnnotationBase<73>dataNcCs ||_||_|<00>|<03>d|_dS)N)r<00>xycoords<64>set_annotation_clip<69>
_draggable)rUrrn<00>annotation_cliprrrrZ<00>s
z_AnnotationBase.__init__c
Cspt|t<01>r|\}}n
||}}|dkr4t|<00>|<02><01>}|dkrJt|<00>|<03><01>}|<00>||<04>}|<07>||f<02>\}} || fS)Nrm)r[r rr<>r<><00>_get_xy_transformr&)
rUr+r3r4r<00>s1<73>s2r-r<>r<>rrr<00>_get_xy<78>s


 z_AnnotationBase._get_xycCstt|t<01>rD|\}}ddlm}|<00>||<03>}|<00>||<04>}|||<07>}|St|<02>r~||<01>}t|t<06>rft|<08>St|t<08>rt|St d<03><01>nRt|t
<EFBFBD>r<>|<02> |<01>} t| <09>St|t<06>r<>t|<02>St|t<08>r<>|St|t <0C>s<>t d|<00><01>|dkr<>|j jS|dk<02>rddlm}
|
<EFBFBD><11>}||j j} | S|<02><12>} t| <0C>dk<03>r0td |<00><01>d
\} }| \}}|d k<02>rT|jj} n|d k<02>rf|j j} | dk <09>r<>| jdd<08>}n|d k<02>r<>|<00>|<01>}|dk <09>rd|\}}ddlm}|dk<02>r<>|j<15><1A>d}|<13><00>||<14>}n~|dk<02>r<>|<13>}nl|dk<02>r |<00><1C>}||j<15><1A>d}|<13><00>||<14>}n8|dk<02>rL| jdd<00>\}}|<13><00>||<17>}n td |<00><01>|<08>||<12>Std |<00><01>dS)Nr)<01>blended_transform_factoryzunknown return type ...zunknown coordinate type : %srmZpolar)<01> PolarAxesr<73>z!%s is not a recognized coordinate)NNr<00>axes<65>offset)rragR@rerK<00>fraction)r[r Zmatplotlib.transformsrvrr<00>callablerrrrrrxr\rxZ transDataZmatplotlib.projectionsrwZPolarTransformr<6D>r<>rrrory<00> _get_ref_xyrZget_dpirir<>r<>)rUr+rrsrtrvZtr1Ztr2r-rorwr<>Zs_Zbbox0Zxy0Z bbox_namerZref_xZref_yrZdpprKr5r6rrrrr<00>sz
   








 
   






 



  z!_AnnotationBase._get_xy_transformc Cs<>dd<02>}t|jt<02>rp|j\}}||<03>s.||<04>r6td<03><01>|j\}}|<00>||||<03>\}}|<00>||||<04>\} }
||
fS||j<01>r<>td<03><01>n|j\}}|<00>||||j<01>SdS)zy
return x, y (in display coordinate) that is to be used for a reference
of any offset coordinate
cSst|t<01>o|<00><02>ddkS)Nrry)r[r\r<>)rrrr<00> is_offset?sz._AnnotationBase._get_ref_xy.<locals>.is_offsetz+xycoords should not be an offset coordinateN)r[rnr rrru) rUr+r}rsrtr3r4r<>r<>rSrTrrrr|:s 




z_AnnotationBase._get_ref_xycCs
||_dS)aK
set *annotation_clip* attribute.
* True: the annotation will only be drawn when self.xy is inside
the axes.
* False: the annotation will always be drawn regardless of its
position.
* None: the self.xy will be checked only if *xycoords* is "data"
N)<01>_annotation_clip)rUr|rrrro[s
z#_AnnotationBase.set_annotation_clipcCs|jS)z
Return *annotation_clip* attribute.
See :meth:`set_annotation_clip` for the meaning of return values.
)r~)rUrrr<00>get_annotation_clipgsz#_AnnotationBase.get_annotation_clipcCs|j\}}|<00>||||j<02>S)z1Return the pixel position of the annotated point.)rrurn)rUr+r3r4rrr<00>_get_position_xyns
z _AnnotationBase._get_position_xycCs2|<00><00>}|s|dkr.|jdkr.|j<02>|<02>s.dSdS)zb
given the xy pixel coordinate, check if the annotation need to
be drawn.
NrmFT)rrnrxZcontains_point)rUr+<00>xy_pixelr|rrr<00> _check_xyss
 z_AnnotationBase._check_xyFcCs`ddlm}|jdk }|dkr$| }|r@|jdkrZ|||<02>|_n|jdk rT|j<02><03>d|_|jS)ac
Set the draggable state -- if state is
* None : toggle the current state
* True : turn draggable on
* False : turn draggable off
If draggable is on, you can drag the annotation on the canvas with
the mouse. The DraggableAnnotation helper instance is returned if
draggable is on.
r)<01>DraggableAnnotationN)Zmatplotlib.offsetboxr<78>rpZ
disconnect)rU<00>stateZuse_blitr<74>Z is_draggablerrr<00> draggable<6C>s 



z_AnnotationBase.draggable)rmN)NF) r&r'r(rZrurrr|rorr<>r<>r<>rrrrrl<00>s
S! rlc@s<>eZdZdZdd<03>Ze<05>ddd<06>d&d d
<EFBFBD><01>Zd d <0C>Ze d d<0E><00>Z
e
j dd<0E><00>Z
e dd<11><00>Z e j dd<11><00>Z e j Zde_e jZde_dd<16>Zdd<18>Zdd<1A>Zejdd<1C><00>Zd'dd<1E>Ze ejdd d!<21>d"d#<23><00>e<05>d<1F>d$d#<23><00>d%<25>ZdS)(r/a`
An `.Annotation` is a `.Text` that can refer to a specific position *xy*.
Optionally an arrow pointing from the text to *xy* can be drawn.
Attributes
----------
xy
The annotated position.
xycoords
The coordinate system for *xy*.
arrow_patch
A `.FancyArrowPatch` to point from *xytext* to *xy*.
cCsd|jd|jd|jfS)NzAnnotation(%g, %g, %r)rr)rrT)rUrrrr2<00>szAnnotation.__str__z3.1rr*NrmcKs<>tj||||d<01>|dkr4|dk r4||kr4t<02>d<03>|dkrB|j}||_|dkrV|j}|\} }
tj|| |
|f|<08>||_|dk r<>d|kr<>|j<08> <09>}|<06>
dd<06>|_ n2d} t <0C>}x&|j<08> <0A>D]\} } | | kr<>| || <q<>Wtd
|<06>|_nd|_dS) a<>
Annotate the point *xy* with text *text*.
In the simplest form, the text is placed at *xy*.
Optionally, the text can be displayed in another position *xytext*.
An arrow pointing from the text to the annotated point *xy* can then
be added by defining *arrowprops*.
Parameters
----------
text : str
The text of the annotation. *s* is a deprecated synonym for this
parameter.
xy : (float, float)
The point *(x,y)* to annotate.
xytext : (float, float), optional
The position *(x,y)* to place the text at.
If *None*, defaults to *xy*.
xycoords : str, `.Artist`, `.Transform`, callable or tuple, optional
The coordinate system that *xy* is given in. The following types
of values are supported:
- One of the following strings:
================= =============================================
Value Description
================= =============================================
'figure points' Points from the lower left of the figure
'figure pixels' Pixels from the lower left of the figure
'figure fraction' Fraction of figure from lower left
'axes points' Points from lower left corner of axes
'axes pixels' Pixels from lower left corner of axes
'axes fraction' Fraction of axes from lower left
'data' Use the coordinate system of the object being
annotated (default)
'polar' *(theta,r)* if not native 'data' coordinates
================= =============================================
- An `.Artist`: *xy* is interpreted as a fraction of the artists
`~matplotlib.transforms.Bbox`. E.g. *(0, 0)* would be the lower
left corner of the bounding box and *(0.5, 1)* would be the
center top of the bounding box.
- A `.Transform` to transform *xy* to screen coordinates.
- A function with one of the following signatures::
def transform(renderer) -> Bbox
def transform(renderer) -> Transform
where *renderer* is a `.RendererBase` subclass.
The result of the function is interpreted like the `.Artist` and
`.Transform` cases above.
- A tuple *(xcoords, ycoords)* specifying separate coordinate
systems for *x* and *y*. *xcoords* and *ycoords* must each be
of one of the above described types.
See :ref:`plotting-guide-annotation` for more details.
Defaults to 'data'.
textcoords : str, `.Artist`, `.Transform`, callable or tuple, optional
The coordinate system that *xytext* is given in.
All *xycoords* values are valid as well as the following
strings:
================= =========================================
Value Description
================= =========================================
'offset points' Offset (in points) from the *xy* value
'offset pixels' Offset (in pixels) from the *xy* value
================= =========================================
Defaults to the value of *xycoords*, i.e. use the same coordinate
system for annotation point and text position.
arrowprops : dict, optional
The properties used to draw a
`~matplotlib.patches.FancyArrowPatch` arrow between the
positions *xy* and *xytext*.
If *arrowprops* does not contain the key 'arrowstyle' the
allowed keys are:
========== ======================================================
Key Description
========== ======================================================
width The width of the arrow in points
headwidth The width of the base of the arrow head in points
headlength The length of the arrow head in points
shrink Fraction of total length to shrink from both ends
? Any key to :class:`matplotlib.patches.FancyArrowPatch`
========== ======================================================
If *arrowprops* contains the key 'arrowstyle' the
above keys are forbidden. The allowed values of
``'arrowstyle'`` are:
============ =============================================
Name Attrs
============ =============================================
``'-'`` None
``'->'`` head_length=0.4,head_width=0.2
``'-['`` widthB=1.0,lengthB=0.2,angleB=None
``'|-|'`` widthA=1.0,widthB=1.0
``'-|>'`` head_length=0.4,head_width=0.2
``'<-'`` head_length=0.4,head_width=0.2
``'<->'`` head_length=0.4,head_width=0.2
``'<|-'`` head_length=0.4,head_width=0.2
``'<|-|>'`` head_length=0.4,head_width=0.2
``'fancy'`` head_length=0.4,head_width=0.4,tail_width=0.4
``'simple'`` head_length=0.5,head_width=0.5,tail_width=0.2
``'wedge'`` tail_width=0.3,shrink_factor=0.5
============ =============================================
Valid keys for `~matplotlib.patches.FancyArrowPatch` are:
=============== ==================================================
Key Description
=============== ==================================================
arrowstyle the arrow style
connectionstyle the connection style
relpos default is (0.5, 0.5)
patchA default is bounding box of the text
patchB default is None
shrinkA default is 2 points
shrinkB default is 2 points
mutation_scale default is text size (in points)
mutation_aspect default is 1.
? any key for :class:`matplotlib.patches.PathPatch`
=============== ==================================================
Defaults to None, i.e. no arrow is drawn.
annotation_clip : bool or None, optional
Whether to draw the annotation when the annotation point *xy* is
outside the axes area.
- If *True*, the annotation will only be drawn when *xy* is
within the axes.
- If *False*, the annotation will always be drawn.
- If *None*, the annotation will only be drawn when *xy* is
within the axes and *xycoords* is 'data'.
Defaults to *None*.
**kwargs
Additional kwargs are passed to `~matplotlib.text.Text`.
Returns
-------
annotation : `.Annotation`
See Also
--------
:ref:`plotting-guide-annotation`.
)rnrqNzgYou have used the `textcoords` kwarg, but not the `xytext` kwarg. This can lead to surprising results.<2E>
arrowstyle<EFBFBD>relpos)g<00>?g<00>?)r<><00> headwidth<74>
headlength<EFBFBD>shrink<6E>frac<61>rr<00>rr)r<>r<>)rlrZr<00>_warn_externalrn<00> _textcoordsrrN<00>
arrowpropsr<EFBFBD>rq<00> _arrow_relposr<73><00>itemsr
<00> arrow_patch)rUr*r<00>xytextrnZ
textcoordsr<EFBFBD>rqrnr3r4Z shapekeysr<73><00>valrrrrZ<00>s:/

 
zAnnotation.__init__cCs:t<00>||<01>\}}|jdk r2|j<02>|<01>\}}|p0|}||fS)N)rNrzr<>)rU<00>eventrzZtinfoZin_patchr.rrrrz<00>s

zAnnotation.containscCs|<00><00>S)zU
The the text position.
See also *xytext* in `.Annotation`.
)r<>)rUrrr<00>xyann<6E>szAnnotation.xyanncCs|<00>|<01>dS)N)r)rUr<>rrrr<><00>scCs|jS)z5The coordinate system to use for `.Annotation.xyann`.)r<>)rUrrr<00> anncoords<64>szAnnotation.anncoordscCs
||_dS)N)r<>)rUZcoordsrrrr<><00>szq
Return the coordinate system to use for `.Annotation.xyann`.
See also *xycoords* in `.Annotation`.
zn
Set the coordinate system to use for `.Annotation.xyann`.
See also *xycoords* in `.Annotation`.
cCs&|jdk r|j<00>|<01>t<02>||<01>dS)N)r<>r^r)rUr_rrrr^<00>s
 zAnnotation.set_figurecCs|<00>|<01>}|<00>||<02>dS)z?Update the pixel positions of the annotated point and the text.N)r<><00>_update_position_xytext)rUr+r<>rrr<00>update_positions<6E>s
zAnnotation.update_positionsc"s<>|<00>|<00>||j<02><02>|<00><03>\}}|\}}|jdk <09>r<>|\<02><00>t<05>||<01>j\}}} }
|| } ||
} d|| } d|| }|j<04><08>}|<0F> d|<00>
<EFBFBD><00>}|j <0B> |<10>d|k<07>r<>|<0F> dd<06>}|<0F> dd<08>}|<0F> d d
<EFBFBD>}|<0F> d d<01>}|dk r<>t <0A>d <0C>|<0F> d d
<EFBFBD>}t||||||d<0E>}|j jd|<16>|df| df| dff}|df|df| dff}t<11>fdd<13>|D<00><01>\}\}}t<11>fdd<13>|D<00><01>\}\}}||f|_t<13>|<1C>|<1A><00>} || |<01>d<11>}||j _||j _|j}t<05>||<01>} | j| j|d}| j| j|d}|j <0B>||f||f<02>d|k<06>r6|j <0B>|<0F> d<15><01>n<>|j<1E>rN|j <0B>|j<1E>n<>|<01>d<08>}!|<00><1F>dk<02>rv|j <0B>d<01>dSt<05>||<01>} | j\}}} }
||!d8}||!d8}| |!7} |
|!7}
t ||f| |
d<18>} | <0B>t!<21><00>| <0B>"d<19>|j <0B>| <0B>dS)zX
Update the pixel positions of the annotation text and the arrow patch.
Ng<00>?Zmutation_scaler<65>r<>gr<>r<>r<><00> r<>zh'frac' option in 'arrowprops' is no longer supported; use 'headlength' to set the head length in points.r<>)Z head_lengthZ
head_widthZ
tail_width<EFBFBD>simplerrc3s"|]}t|d<00><00>|fVqdS)rN)<01>abs)r<>r<>)r<>rr<00> <genexpr><3E>sz5Annotation._update_position_xytext.<locals>.<genexpr>c3s"|]}t|d<00><00>|fVqdS)rN)r<>)r<>r<>)r<>rrr<><00>sZpatchArWg@)rr<>r<>F)r<>)#r<>rrr<>r<>r<>rNrxryr<>rqr<>r<>r<>rr<>r<>Zset_arrowstyler(r<>r"<00>hypotr<74>ZshrinkAZshrinkBr<42>r<>r<>r<>Z set_positionsZ
set_patchArerr rr<>)"rUr+r<>Zox0Zoy0Zox1Zoy1r{r|r5r6r}r1<00>xc<78>ycr0<00>msr<73>r<>r<>r<>r<>ZstylekwZxposZyposr.r3Zrelposxr4ZrelposyZ
shrink_ptsr<EFBFBD>ror<>r)r<>r<>rr<><00>sx    
 
      
 

     
z"Annotation._update_position_xytextcCs<>|dk r||_|<00><01>sdS|<00>|<01>}|<00>||<02>s4dS|<00>||<02>|<00>|<01>|jdk r<>|jjdkrt|jdk rt|j|j_|j<06>|<01>t <09>||<01>dS)zN
Draw the :class:`Annotation` object to the given *renderer*.
N)
rfrwr<>r<>r<>r<>r<>rr<>rN)rUr+r<>rrrr<>( s
  


 zAnnotation.drawcCs<>|<00><00>st<01><02>S|dk r||_|jdkr2|jj|_|jdkrDtd<02><01>|<00>|j<03>t<08> |<00>}|g}|j
dk rz|<03> |j
<EFBFBD> <09><00>t<01> |<03>S)a
Return the `Bbox` bounding the text and arrow, in display units.
Parameters
----------
renderer : Renderer, optional
A renderer is needed to compute the bounding box. If the artist
has already been drawn, the renderer is cached; thus, it is only
necessary to pass this argument when calling `get_window_extent`
before the first `draw`. In practice, it is usually easier to
trigger a draw first (e.g. by saving the figure).
Nz%Cannot get window extent w/o renderer) rwrrrfrrrr<>rNrxr<>r<><00>union)rUr+Z text_bboxZbboxesrrrrxC s


 

zAnnotation.get_window_extentz3.0z[arrow was deprecated in Matplotlib 3.0 and will be removed in 3.2. Use arrow_patch instead.)<01>messagecCsdS)Nr)rUrrr<00><lambda>h <00>zAnnotation.<lambda>cCsdS)Nr)rU<00>valuerrrr<>i r<>)<02>fget<65>fset)NrmNNN)N)r&r'r(r)r2rZ_rename_parameterrZrz<00>propertyr<79><00>setterr<72>r<>Z get_anncoordsr<73>Z set_anncoordsr^r<>r<>rr+r<>rxr-Zarrowrrrrr/<00>s6   T  e
" )r/)2r)<00>
contextlib<EFBFBD>loggingr<67>rZnumpyr"rWrrrrrZ font_managerrr<>r Zpatchesr
r r <00>textpathr Z
transformsrrrrrr<00> getLoggerr&r<><00>contextmanagerrr!r;Z_define_aliasesrNZinterpdriZkwdocZdedent_interpdrZr-r1rpr`rlr/rrrr<00><module>sl     
&y SWM