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

722 lines
39 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
U<>]<5D><><00> @s<>dZddlmZmZmZddlZddlZddlm Z m
Z
m Z m Z mZddl mZmZddl
mZmZmZmZddlmZdd lmZdd
lmZmZdd lmZdd lmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(e<05>)e*<2A>Z+d d<0E>Z,dd<10>Z-dd<12>Z.dd<14>Z/e
<EFBFBD>0dgdgdgdgdgdgdgdgdgdgd<1F>
<EFBFBD>Gd d!<21>d!e<0F><03>Z1Gd"d#<23>d#e2<65>Z3e1j4Z5ejZ6e1j7Z7ej8Z9e j:j;e <09><e1<65>d$<24>e <0A>=e1j><3E>dS)%zn
This module contains all the 2D line class which can draw with a
variety of line styles, markers and colors.
<EFBFBD>)<03>Integral<61>Number<65>RealN<6C>)<05>artist<73>cbook<6F>colors<72> docstring<6E>rcParams)<02>Artist<73>allow_rasterization)<04>_to_unmasked_float_array<61> ls_mapper<65> ls_mapper_r<5F>STEP_LOOKUP_MAP)<01> MarkerStyle)<01>Path)<02>Bbox<6F>TransformedPath)<01>_path) <0C> CARETLEFT<46>
CARETRIGHT<EFBFBD>CARETUP<55> CARETDOWN<57> CARETLEFTBASE<53>CARETRIGHTBASE<53> CARETUPBASE<53> CARETDOWNBASE<53>TICKLEFT<46> TICKRIGHT<48>TICKUP<55>TICKDOWNcCs<>t|t<01>rt<02>||<00>}|dkr(d\}}nD|dkrHd}ttd<05>|<00><00>}n$t|t<04>r\|\}}ntdt|<00><00><01>|dk r<>|dk r<>t|<02>}|r<>||;}||fS)z&Convert linestyle -> dash pattern
)Zsolid<69>None)NN)ZdashedZdashdotZdottedrzlines.{}_patternzUnrecognized linestyle: %sN) <09>
isinstance<EFBFBD>strr<00>get<65>tupler
<00>format<61>
ValueError<EFBFBD>sum)<04>style<6C>offset<65>dashesZdsum<75>r-<00>8/tmp/pip-install-i8dhxrtk/matplotlib/matplotlib/lines.py<70>_get_dash_patterns
 


r/csJtds||fSd}}|dk r(|<00>}|dk rB<72>fdd<03>|D<00>}||fS)Nzlines.scale_dashescs g|]}|dk r|<01>nd<00>qS)Nr-)<02>.0<EFBFBD>x)<01>lwr-r.<00>
<listcomp>Csz!_scale_dashes.<locals>.<listcomp>)r
)r+r,r2Z scaled_offsetZ scaled_dashesr-)r2r.<00> _scale_dashes;s
r4cCsZt|<02>dkr8t<01>||d||d|dk<01>\}|S|dd<04>|dd<04>}}|dd<03>||dd<03>|}} |d| d}
|||||| |
} | dk| dk@} ||d||d|dk} | | dd<04>| dd<03>B@} || ||| | }}||d||d|dk}|| @}| <0A><03><00><02>\}|<10><03><00><02>\}t<01>||f<02>S)z<>
Return the indices of the segments in the polyline with coordinates (*cx*,
*cy*) that are within a distance *radius* of the point (*x*, *y*).
r<00>N<><4E><EFBFBD><EFBFBD><EFBFBD>r)<05>len<65>np<6E>nonzero<72>ravelZ concatenate)Zcx<63>cyr1<00>yZradius<75>resZxr<78>yrZdxZdyZLnorm_sq<73>u<>
candidatesZ
point_hitsZpx<70>pyZ line_hitsZpoints<74>linesr-r-r.<00> segment_hitsIs  ("  rCc Cs<>|j|j}}dd<02>}t|t<03>r*d|f}nt|t<04>r<d|f}t|t<05><02>r"t|<00>dkrbtd<06>|<00><01><01>|\}}t|t<03>r<>t|t<03>s<>td<07>|<00><01><01>t |t
|d|<08>||t
|d|<08><03><02>St|t<04><02>rt|t<04>s<>td <09>|<00><01><01>|<02> |j<01>} t <0C> t| <09>df<02>}
d|
ddd<08>f<| d
d<08>dd<08>f| dd <0B>dd<08>f|
d
d<08>dd<08>f<t j|
dd
d <0C>}
t <0C>|
<EFBFBD>}
t <0C>|
<EFBFBD>}
|<03> t <0C>ddgd
d
gg<02><01>} t j| dd <0C>} t <0C>| d<00>} t <0C>| <0B>} t <0C>|| |
d || <00>} t <0C>|
t jdd<08>f| dd<08>t jf<00>} | jd
d <0C>} t <0C>| <0A>} t || ||| <0A><02>Std |<00>d<0E><03><01>n~t|t
<EFBFBD><02>rBt |||||<00><02>St <0C>|<00><01>r<>yt |||||<00><02>Sttfk
<EFBFBD>r<>td |<00>d<0F><03><01>YnXntd |<00>d<10><03><01>dS)z<>
Helper function that sorts out how to deal the input
`markevery` and returns the points where markers should be drawn.
Takes in the `markevery` value and the line path and returns the
sub-sampled path.
cSs|dkr dS||S)zY
Helper function to cope with `codes` being an
ndarray or `None`
Nr-)Zin_vZslcr-r-r.<00>_slice_or_noneysz(_mark_every_path.<locals>._slice_or_nonergr5z9`markevery` is a tuple but its len is not 2; markevery={}zq`markevery` is a tuple with len 2 and second element is an int, but the first element is not an int; markevery={}Nz}`markevery` is a tuple with len 2 and second element is a float, but the first element is not a float or an int; markevery={}rr6)Zaxisz
markevery=zG is a tuple with len 2, but its second element is not an int or a floatz. is iterable but not a valid numpy fancy indexz is not a recognized value)<1A>codes<65>verticesr#rrr&r7r(r'r<00>slice<63> transformr8<00>emptyr)<00>sqrtZcumsum<75>arrayZdiff<66>arange<67>absZnewaxisZargmin<69>unique<75>iterable<6C>
IndexError)<0E> markevery<72>tpath<74>affineZ ax_transformrEZvertsrD<00>start<72>stepZ disp_coords<64>delta<74>scaleZ marker_deltaZindsr-r-r.<00>_mark_every_pathnsd 


  

 
 8


* 
  rXZaa<61>c<>ds<64>lsr2<00>mecZmewZmfcZmfcalt<6C>ms)
<EFBFBD> antialiased<65>color<6F> drawstyle<6C> linestyle<6C> linewidth<74>markeredgecolor<6F>markeredgewidth<74>markerfacecolor<6F>markerfacecoloralt<6C>
markersizec@s<>eZdZdZdddddddd<07>ZZdd d
d d <0C>Zd d
iZee<07>Zee<07>Z e
j Z e
j Z e
j ZdZdZdZdd<12>Zd<>dd<17>Ze<14>d<18>edd<1A><00><01>Zdd<1C>Zdd<1E>Zdd <20>Zd!d"<22>Zd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>Zd+d,<2C>Z e!j"j#d-d.<2E><00>Z"d/d0<64>Z$d1d2<64>Z%d<>d4d5<64>Z&d<>d6d7<64>Z'd8d9<64>Z(d:d;<3B>Z)d<d=<3D>Z*e+d>d?<3F><00>Z,d@dA<64>Z-dBdC<64>Z.dDdE<64>Z/dFdG<64>Z0dHdI<64>Z1dJdK<64>Z2dLdM<64>Z3dNdO<64>Z4d<34>dPdQ<64>Z5dRdS<64>Z6dTdU<64>Z7dVdW<64>Z8d<38>dYdZ<64>Z9d<39>d[d\<5C>Z:d<>d]d^<5E>Z;d_d`<60>Z<dadb<64>Z=dcdd<64>Z>dedf<64>Z?dgdh<64>Z@didj<64>ZAdkdl<64>ZBdmdn<64>ZCeDjEdodp<64><00>ZFdqdr<64>ZGdsdt<64>ZHdudv<64>ZIdwdx<64>ZJdydz<64>ZKd{d|<7C>ZLd}d~<7E>ZMdd<7F><64>ZNd<4E>d<EFBFBD><64>ZOd<4F>d<EFBFBD><64>ZPd<50>d<EFBFBD><64>ZQd<51>d<EFBFBD><64>ZRd<52>d<EFBFBD><64>ZSd<53>d<EFBFBD><64>ZTd<54>d<EFBFBD><64>ZUd<55>d<EFBFBD><64>ZVd<56>d<EFBFBD><64>ZWd<57>d<EFBFBD><64>ZXdS)<29><>Line2Da
A line - the line can have both a solid linestyle connecting all
the vertices, and a marker at each vertex. Additionally, the
drawing of the solid line is influenced by the drawstyle, e.g., one
can create "stepped" lines in various styles.
Z _draw_solidZ _draw_dashedZ_draw_dash_dotZ _draw_dotted<65> _draw_nothing)<07>-z--z-.<2E>:r"<00> <20>Z _draw_linesZ_draw_steps_midZ_draw_steps_preZ_draw_steps_post)<04>defaultz steps-midz steps-prez
steps-post<73>stepsr5)Zbutt<74>roundZ
projecting)ZmiterrpZbevelcCs<>|jdkrd|j<00>d<03>S|jdkr&dSt|j<01>dkrld|jd|jd|jd|jd|jd|jdfSd d
<EFBFBD>td j|j|j<03><03>SdS) NrmzLine2D(<28>)zLine2D()<29>z#Line2D((%g,%g),(%g,%g),...,(%g,%g))rr6z
Line2D(%s)<29>,z ({:g},{:g}))Z_label<65>_xr7<00>_y<5F>join<69>mapr')<01>selfr-r-r.<00>__str__s

zLine2D.__str__N<5F>none<6E>cKs<>t<00>|<00>t<02>|<01>std<01><01>t<02>|<02>s.td<02><01>|dkr>td}|dkrNtd}|dkr^td}|
dkrntd}
| dkr~td} |dkr<>td }|dkr<>td
}| dkr<>td } |dkr<>td }|dkr<>td }|dkr<>td}|dkr<>td}t|t<07><02>rH|<00>|<04>\}}|dk <09>r6|dk <09>r6||k<03>r6t d<10>
||<04><02><01>|}|dk <09>rH|}|dk<08>rVd}d|_ d|_ d|_ d|_|<00>|<0E>|<00>|<10>|<00>|<0F>|<00>|<11>d|_d|_||_d|_d|_d|_d|_|<00>|<03>|<00>|<04>|<00>|<13>d|_|<00>|<05>t|| <0C>|_ d|_!d|_"d|_#|<00>$|<14>|<00>%| <0A>|<00>&|<07>d|_'d|_(d|_)d|_*|<00>+|
<EFBFBD>|<00>,| <0B>|<00>-| <09>|<00>.|<08>|<00>/|<15>||_0d|_1t|j2t3<74><02>r<>|j2|_0t<02>4g<00>|_5t<02>4g<00>|_6d|_7d|_8d|_9d|_:d|_;d|_<d|_=d|_>d|_?|<00>@||<02>dS)a<>
Create a :class:`~matplotlib.lines.Line2D` instance with *x*
and *y* data in sequences *xdata*, *ydata*.
The kwargs are :class:`~matplotlib.lines.Line2D` properties:
%(_Line2D_docstr)s
See :meth:`set_linestyle` for a description of the line styles,
:meth:`set_marker` for a description of the markers, and
:meth:`set_drawstyle` for a description of the draw styles.
zxdata must be a sequencezydata must be a sequenceNzlines.linewidthzlines.linestylez lines.markerzlines.markerfacecolorzlines.markeredgecolorz lines.colorzlines.markersizezlines.antialiasedzlines.dash_capstylezlines.dash_joinstylezlines.solid_capstylezlines.solid_joinstylez2Inconsistent drawstyle ({!r}) and linestyle ({!r})rnrTF)Ar <00>__init__r8rO<00> RuntimeErrorr
r#r$<00>_split_drawstyle_linestyler(r'<00> _dashcapstyle<6C>_dashjoinstyle<6C>_solidjoinstyle<6C>_solidcapstyle<6C>set_dash_capstyle<6C>set_dash_joinstyle<6C>set_solid_capstyle<6C>set_solid_joinstyleZ _linestyles<65>
_drawstyle<EFBFBD>
_linewidth<EFBFBD>_dashSeq<65> _dashOffset<65> _us_dashSeq<65>_us_dashOffset<65> set_linewidth<74> set_linestyle<6C> set_drawstyle<6C>_color<6F> set_colorr<00>_marker<65>
_markevery<EFBFBD> _markersize<7A> _antialiased<65> set_markevery<72>set_antialiased<65>set_markersize<7A>_markeredgecolor<6F>_markeredgewidth<74>_markerfacecolor<6F>_markerfacecoloralt<6C>set_markerfacecolor<6F>set_markerfacecoloralt<6C>set_markeredgecolor<6F>set_markeredgewidth<74>update<74>
pickradius<EFBFBD>
ind_offset<EFBFBD>_pickerr<00>asarray<61>_xorig<69>_yorig<69> _invalidx<64> _invalidyrtru<00>_xyr<00>_transformed_path<74> _subslice<63> _x_filled<65>set_data)rx<00>xdata<74>ydatarbrar_<00>markerrgrdrcrerfZ fillstyler^Z dash_capstyleZsolid_capstyleZdash_joinstyleZsolid_joinstyler<65>r`rQ<00>kwargsrZr[r-r-r.r|s<>"


 










 







  zLine2D.__init__z3.1cCsdS)Nr-)rxr-r-r.<00>verticalOffset<65>szLine2D.verticalOffsetc
Csbt|j<01>r|<00>||<01>St|jt<04>s*td<01><01>|js6|jr>|<00><08>t |j
<EFBFBD>dkrTdifS|<00> <0B>}|<02> <0C>\}}|<04> |<03>}|j}|dd<04>df}|dd<04>df}|jdkr<>t<10>d<06>|j}n|jjd|j}tjdd <09><01>j|jd
k<06>rt<13>||jd ||jd |d k<01>\} n*t|j|j|||<08>} |j<1A>d <0C><01>r8| d } WdQRX| |j7} t | <09>dkt| d <0A>fS)a&
Test whether the mouse event occurred on the line. The pick
radius determines the precision of the location test (usually
within five points of the value). Use
:meth:`~matplotlib.lines.Line2D.get_pickradius` or
:meth:`~matplotlib.lines.Line2D.set_pickradius` to view or
modify it.
Parameters
----------
mouseevent : `matplotlib.backend_bases.MouseEvent`
Returns
-------
contains : bool
Whether any values are within the radius.
details : dict
A dictionary ``{'ind': pointlist}``, where *pointlist* is a
list of points of the line that are within the pickradius around
the event position.
TODO: sort returned indices by distance
z pick radius should be a distancerFNrz,no figure set when check if mouse is on linegR@<40>ignore)<01>all)r"Nr5ro)<01>ind)<1E>callable<6C> _containsr#r<>rr(r<>r<><00>recacher7r<><00>_get_transformed_path<74>get_transformed_path_and_affineZtransform_pathrF<00>figure<72>_log<6F>warning<6E>dpir8Zerrstate<74>
_linestyler9r1r<rCr<><00>
startswithr<EFBFBD><00>dict)
rxZ
mouseeventZtransformed_path<74>pathrS<00>xyZxtZytZpixelsr<73>r-r-r.<00>contains<6E>s8
    


 
zLine2D.containscCs|jS)zo
Return the pick radius used for containment tests.
See `.contains` for more details.
)r<>)rxr-r-r.<00>get_pickradius<75>szLine2D.get_pickradiuscCs
||_dS)z<>Set the pick radius used for containment tests.
See `.contains` for more details.
Parameters
----------
d : float
Pick radius, in points.
N)r<>)rx<00>dr-r-r.<00>set_pickradius<75>s
zLine2D.set_pickradiuscCs
|j<00><01>S)z[
Return the marker fill style.
See also `~.Line2D.set_fillstyle`.
)r<><00> get_fillstyle)rxr-r-r.r<> szLine2D.get_fillstylecCs|j<00>|<01>d|_dS)aY
Set the marker fill style.
Parameters
----------
fs : {'full', 'left', 'right', 'bottom', 'top', 'none'}
Possible values:
- 'full': Fill the whole marker with the *markerfacecolor*.
- 'left', 'right', 'bottom', 'top': Fill the marker half at
the given side with the *markerfacecolor*. The other
half of the marker is filled with *markerfacecoloralt*.
- 'none': No filling.
For examples see
:doc:`/gallery/lines_bars_and_markers/marker_fillstyle_reference`.
TN)r<><00> set_fillstyle<6C>stale)rx<00>fsr-r-r.r<>s zLine2D.set_fillstylecCs|j|krd|_||_dS)a<>Set the markevery property to subsample the plot when using markers.
e.g., if `every=5`, every 5-th marker will be plotted.
Parameters
----------
every : None or int or (int, int) or slice or List[int] or float or (float, float)
Which markers to plot.
- every=None, every point will be plotted.
- every=N, every N-th marker will be plotted starting with
marker 0.
- every=(start, N), every N-th marker, starting at point
start, will be plotted.
- every=slice(start, end, N), every N-th marker, starting at
point start, up to but not including point end, will be plotted.
- every=[i, j, m, n], only markers at points i, j, m, and n
will be plotted.
- every=0.1, (i.e. a float) then markers will be spaced at
approximately equal distances along the line; the distance
along the line between markers is determined by multiplying the
display-coordinate distance of the axes bounding-box diagonal
by the value of every.
- every=(0.5, 0.1) (i.e. a length-2 tuple of float), the same
functionality as every=0.1 is exhibited but the first marker will
be 0.5 multiplied by the display-coordinate-diagonal-distance
along the line.
Notes
-----
Setting the markevery property will only show markers at actual data
points. When using float arguments to set the markevery property
on irregularly spaced data, the markers will likely not appear evenly
spaced because the actual data points do not coincide with the
theoretical spacing between markers.
When using a start offset to specify the first marker, the offset will
be from the first data point which may be different from the first
the visible data point if the plot is zoomed in.
If zooming in on a plot when using float arguments then the actual
data points that have markers will change because the distance between
markers is always determined from the display-coordinates
axes-bounding-box-diagonal regardless of the actual axes data limits.
TN)r<>r<>)rxZeveryr-r-r.r<>&s0
zLine2D.set_markeverycCs|jS)zr
Return the markevery setting for marker subsampling.
See also `~.Line2D.set_markevery`.
)r<>)rxr-r-r.<00> get_markeveryZszLine2D.get_markeverycCs t|<01>r||_n||_||_dS)z<>Sets the event picker details for the line.
Parameters
----------
p : float or callable[[Artist, Event], Tuple[bool, dict]]
If a float, it is used as the pick radius in points.
N)r<>r<>r<>r<>)rx<00>pr-r-r.<00>
set_pickerbszLine2D.set_pickercCs^tddgddgg<02>}|<00><01>j}|j||<00><04><00>dd<03>|jrZ|jd|jjd}|<02> |<04>}|S)NrT)r<>gR@g<00>?)
r<00> get_transformrHZupdate_from_data_xy<78>
get_xydatar<EFBFBD>r<>r<>r<>Zpadded)rx<00>rendererZbboxZtrans_data_to_xyr]r-r-r.<00>get_window_extentps

zLine2D.get_window_extentcCsVtj<01>||<01>|dk rR|jdk r4|jj<04>d|j<06>|_|jdk rR|jj<04>d|j<06>|_ dS)NZunits)
r <00>axes<65>fsetZxaxis<69> callbacks<6B>connect<63>recache_alwaysZ_xcidZyaxisZ_ycid)rxZaxr-r-r.r<>{s




z Line2D.axescGs8t|<01>dkr|\\}}n|\}}|<00>|<02>|<00>|<03>dS)z|
Set the x and y data.
Parameters
----------
*args : (2, N) array or two 1D arrays
rN)r7<00> set_xdata<74> set_ydata)rx<00>argsr1r<r-r-r.r<><00>s
  
zLine2D.set_datacCs|jdd<02>dS)NT)<01>always)r<>)rxr-r-r.r<><00>szLine2D.recache_alwaysFc
Cs<>|s
|jr$|<00>|j<02>}t|<02><01><04>}n|j}|s4|jrN|<00>|j<08>}t|<04><01><04>}n|j }t
<EFBFBD> t
<EFBFBD> ||<05><02><01> t<0E>|_|jj\|_|_ d|_|j<12>r>t|<03>dk<04>r>|<00>|<03><01>r>|jjdk<02>r>|j<12><16>dk<02>r>|jdk<08>r>|<00><18><00>r>d|_t
<EFBFBD>|<03>}|<06><1A><00>r6|j<05><1B>|_t
<EFBFBD>t|<03><01>}t
<EFBFBD>|||||j|<00>|j|<n|j|_|jdk <09>rT|jj }nd}t!|j"|jj<10>} t#t
<EFBFBD>$| <09>j|d<07>|_d|_%d|_d|_dS)NFi<46>Z rectilinearZlinearTr)<01>_interpolation_steps)&r<>Zconvert_xunitsr<73>r r:rtr<>Zconvert_yunitsr<73>rur8Z column_stackZbroadcast_arraysZastype<70>floatr<74><00>Tr<54>r<>r7<00>
_is_sorted<EFBFBD>nameZ
get_xscaler<EFBFBD>Z get_clip_on<6F>isnan<61>any<6E>copyr<79>rLZinterprr<>rr<>rr<>r<>)
rxr<>Zxconvr1Zyconvr<Znanmask<73>indicesZinterpolation_stepsr<73>r-r-r.r<><00>sB
 
 " 


 
 
 
zLine2D.recachecCsZ|dk r@t|j|j|dd<01>fj<03>}tt<05>|<02>j|jjd<02>}n|j}t ||<00>
<EFBFBD><00>|_ dS)z<>
Puts a TransformedPath instance at self._transformed_path;
all invalidation of the transform is then handled by the
TransformedPath instance.
N)r<>) rr<>r<>r<>rr8r<>rr<>rr<>r<>)rx<00>subslicer<65>rr-r-r.<00>_transform_path<74>s  zLine2D._transform_pathcCs|jdkr|<00><01>|jS)zk
Return the :class:`~matplotlib.transforms.TransformedPath` instance
of this line.
N)r<>r<>)rxr-r-r.r<><00>s
zLine2D._get_transformed_pathcCs"t<00>||<01>d|_d|_d|_dS)z<>
Set the Transformation instance used by this artist.
Parameters
----------
t : `matplotlib.transforms.Transform`
TN)r <00> set_transformr<6D>r<>r<>)rx<00>tr-r-r.r<><00>s zLine2D.set_transformcCs
t<00>|<01>S)z.Return whether x is sorted in ascending order.)rZ is_sorted)rxr1r-r-r.r<><00>szLine2D._is_sortedc CsH|<00><00>s dS|js|jr |<00><03>d|_|jr<>|jr<>|j<06><07>\}}|j<08> |d<02>}|j<08> |d<03>}t
t |dd<01>|d<00>}|j |_|<00> |<06>nd}|<00><0E>r<>ddlm}||<00><0E>|<01>}|<01>d|<00><12><00>|j|jdk<03>r<>|<00><15><00><16>\}} t|j<18><01>r<>|<01><19>}
|<00>|
<EFBFBD>t<1B>|j|j<1E>} |
j| dd <09>|
<EFBFBD> |j!<21>|
<EFBFBD>"|j#<23>|<00>$<24><00>rL|j%} |j&} n |j'} |j(} |
<EFBFBD>)| <0A>|
<EFBFBD>*| <0C>|
<EFBFBD>+|<00>,<2C><00>|<00>-<2D>dk <09>r<>|
j.|<00>-<2D><00>|
<EFBFBD>/|j0|j1<6A>|<01>2|
|| <09>3<EFBFBD><00>|
<EFBFBD>4<EFBFBD>|j5<6A>r4|j6dk<04>r4|<01><19>}
|<00>|
<EFBFBD>|
<EFBFBD>"|j7<6A>|
<EFBFBD> |j!<21>t<1B>|<00>8<EFBFBD>|j<1E>}t<1B>|<00>9<EFBFBD>|j<1E>}t<1B>|j9dd
<EFBFBD>|j<1E>}t:<3A>;|j<d <0B><02>rpt:<3A>=|<00>><3E>d <0C><02>sp|dd <0A>|d f}|
j|dd <09>|<00>-<2D>dk <09>r<>|<00>-<2D>\}}}|
<EFBFBD>.|d|dd|<00>|j5}|<00>?<3F>dk<03>rt:j@|ddd<10><03>(|<00><03>|<00> |<06>|<00><15><00>A<EFBFBD>\}} WdQRXn|<00><15><00>A<EFBFBD>\}} t|j<18><01>r,|<00>B<EFBFBD>}|dk <09>rJtC||| |jjD<6A>}n|}|<14>E<EFBFBD>}tF|tG<74><02>rr|<01>H|j6<6A>|k}|
<EFBFBD>+|<17>|
<EFBFBD>)|<14>I<EFBFBD><00>|
<EFBFBD>*|<14>J<EFBFBD><00>|<14>K<EFBFBD>}|<14>L<EFBFBD>}|<01>H|j6<6A>}t:<3A>;|<14>M<EFBFBD>d<11><02>r<>|
<EFBFBD>"d<01>n
|<19>N|<1A>}|<01>O|
|||| <09>3<EFBFBD>|<0F>|<14>P<EFBFBD>}|<1B>r,|<14>Q<EFBFBD>}|<1C>N|<1A>}|<01>O|
|||| <09>3<EFBFBD>|<10>|
<EFBFBD>4<EFBFBD>|<01>Rd<06>d|_SdS)Nr<00>left<66>rightr)<01>PathEffectRendererZline2driT)ZisRGBA)<01>alt<6C>autorzrrr5rn)r<>r<>rsF)TZ get_visibler<65>r<>r<>r<>r<>r<>Z
get_xboundr<EFBFBD>Z searchsortedrG<00>maxrTr<>Zget_path_effectsZmatplotlib.patheffectsr<73>Z
open_groupZget_gid<69> _lineStylesr<73>r<>r<>r7rFZnew_gcZ _set_gc_clip<69>mcolorsZto_rgbar<61>Z_alphaZset_foregroundr<64>r<>r<>r<><00> is_dashedrr<>r<>r<>Z set_joinstyleZ set_capstyleZset_snapZget_snapZget_sketch_paramsZset_sketch_params<6D>
set_dashesr<EFBFBD>r<>Z draw_path<74>frozenZrestorer<65>r<>r<><00>get_markeredgecolor<6F>_get_markerfacecolorr<00>
_str_equalr<EFBFBD><00>_str_lower_equal<61>get_markerfacecolor<6F> get_drawstyleZ _setattr_cmZ!get_transformed_points_and_affiner<65>rXZ transAxesZget_snap_thresholdr#rZpoints_to_pixelsZ get_joinstyleZ get_capstyle<6C>get_pathr<68><00>
get_markerrWZ draw_markersZ get_alt_pathZget_alt_transformZ close_groupr<70>)rxr<>Zx0<78>x1Zi0<69>i1r<31>r<>rRrS<00>gcZlc_rgba<62>caprvZec_rgbaZfc_rgbaZ
fcalt_rgbarW<00>lengthZ
randomnessr<EFBFBD>rQZ
subsampledZsnapZ marker_pathZ marker_trans<6E>wZalt_marker_pathZalt_marker_transr-r-r.<00>draw<61>s<>     
  



  
 
 
  


 
z Line2D.drawcCs|jS)z-Return whether antialiased rendering is used.)r<>)rxr-r-r.<00>get_antialiasedtszLine2D.get_antialiasedcCs|jS)zP
Return the line color.
See also `~.Line2D.set_color`.
)r<>)rxr-r-r.<00> get_colorxszLine2D.get_colorcCs|jS)zS
Return the drawstyle.
See also `~.Line2D.set_drawstyle`.
)r<>)rxr-r-r.r<><00>szLine2D.get_drawstylecCs|jS)zS
Return the linestyle.
See also `~.Line2D.set_linestyle`.
)r<>)rxr-r-r.<00> get_linestyle<6C>szLine2D.get_linestylecCs|jS)z]
Return the linewidth in points.
See also `~.Line2D.set_linewidth`.
)r<>)rxr-r-r.<00> get_linewidth<74>szLine2D.get_linewidthcCs
|j<00><01>S)zR
Return the line marker.
See also `~.Line2D.set_marker`.
)r<>r<>)rxr-r-r.r<><00>szLine2D.get_markercCsV|j}t<01>|d<01>rNtdrH|j<04><05>dkr.|jS|j<04><07>rH|<00><08>dkrHdS|jS|SdS)za
Return the marker edge color.
See also `~.Line2D.set_markeredgecolor`.
r<>z_internal.classic_mode)<02>.rsrz<00>kN) r<>rr<>r
r<>r<>r<>Z is_filledr<64>)rxr\r-r-r.r<><00>s zLine2D.get_markeredgecolorcCs|jS)zk
Return the marker edge width in points.
See also `~.Line2D.set_markeredgewidth`.
)r<>)rxr-r-r.<00>get_markeredgewidth<74>szLine2D.get_markeredgewidthcCs<|r
|jn|j}t<02>|d<01>r4|<00><04>dkr,dS|jSn|SdS)Nr<4E>rz)r<>r<>rr<>r<>r<>)rxr<><00>fcr-r-r.r<><00>s   zLine2D._get_markerfacecolorcCs |jdd<02>S)za
Return the marker face color.
See also `~.Line2D.set_markerfacecolor`.
F)r<>)r<>)rxr-r-r.r<><00>szLine2D.get_markerfacecolorcCs |jdd<02>S)zn
Return the alternate marker face color.
See also `~.Line2D.set_markerfacecoloralt`.
T)r<>)r<>)rxr-r-r.<00>get_markerfacecoloralt<6C>szLine2D.get_markerfacecoloraltcCs|jS)z`
Return the marker size in points.
See also `~.Line2D.set_markersize`.
)r<>)rxr-r-r.<00>get_markersize<7A>szLine2D.get_markersizeTcCs|j|d<01>|j|d<01>fS)zb
Return the xdata, ydata.
If *orig* is *True*, return the original data.
)<01>orig)<02> get_xdata<74> get_ydata)rxrr-r-r.<00>get_data<74>szLine2D.get_datacCs|r
|jS|jr|<00><02>|jS)z|
Return the xdata.
If *orig* is *True*, return the original data, else the
processed data.
)r<>r<>r<>rt)rxrr-r-r.r<00>s
zLine2D.get_xdatacCs|r
|jS|jr|<00><02>|jS)z|
Return the ydata.
If *orig* is *True*, return the original data, else the
processed data.
)r<>r<>r<>ru)rxrr-r-r.r<00>s
zLine2D.get_ydatacCs|js |jr|<00><02>|jS)ze
Return the :class:`~matplotlib.path.Path` object associated
with this line.
)r<>r<>r<>r)rxr-r-r.r<><00>s zLine2D.get_pathcCs|js |jr|<00><02>|jS)z<
Return the *xy* data as a Nx2 numpy array.
)r<>r<>r<>r<>)rxr-r-r.r<>s zLine2D.get_xydatacCs|j|krd|_||_dS)zs
Set whether to use antialiased rendering.
Parameters
----------
b : bool
TN)r<>r<>)rx<00>br-r-r.r<>s
zLine2D.set_antialiasedcCs||_d|_dS)zi
Set the color of the line.
Parameters
----------
color : color
TN)r<>r<>)rxr_r-r-r.r<>szLine2D.set_colorcCs<|dkr d}tj|j|d<03>|j|kr2d|_d|_||_dS)a<>
Set the drawstyle of the plot.
The drawstyle determines how the points are connected.
Parameters
----------
drawstyle : {'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, default: 'default'
For 'default', the points are connected with straight lines.
The steps variants connect the points with step-like lines,
i.e. horizontal lines with vertical steps. They differ in the
location of the step:
- 'steps-pre': The step is at the beginning of the line segment,
i.e. the line will be at the y-value of point to the right.
- 'steps-mid': The step is halfway between the points.
- 'steps-post: The step is at the end of the line segment,
i.e. the line will be at the y-value of the point to the left.
- 'steps' is equal to 'steps-pre' and is maintained for
backward-compatibility.
Nrn)r`T)r<00>_check_in_list<73>
drawStylesr<EFBFBD>r<>r<>)rxr`r-r-r.r<>%s
zLine2D.set_drawstylecCs<t|<01>}|j|krd|_||_t|j|j|j<01>\|_|_dS)zh
Set the line width in points.
Parameters
----------
w : float
TN)r<>r<>r<>r4r<>r<>r<>r<>)rxrr-r-r.r<>Gs 
zLine2D.set_linewidthcCsHx>|jD]4}|<01>|<02>rtjddd<03>||t|<02>d<04>p8dfSqWd|fS)a<>
Split drawstyle from linestyle string.
If *ls* is only a drawstyle default to returning a linestyle
of '-'.
Parameters
----------
ls : str
The linestyle to be processed
Returns
-------
ret_ds : str or None
If the linestyle string does not contain a drawstyle prefix
return None, otherwise return it.
ls : str
The linestyle with the drawstyle (if any) stripped.
z3.1a Passing the drawstyle with the linestyle as a single string is deprecated since Matplotlib %(since)s and support will be removed %(removal)s; please pass the drawstyle separately using the drawstyle keyword argument to Line2D or set_drawstyle() method (or ds/set_ds()).)<01>messageNrj)<05> drawStyleKeysr<73>rZwarn_deprecatedr7)rxr[rZr-r-r.r~Xs  

z!Line2D._split_drawstyle_linestylecCs<>t|t<01>rd|<00>|<01>\}}|dk r*|<00>|<02>|dkr6d}tj|jt<07>|d<04>||jkr\t|}||_nd|_t |<01>\|_
|_ t |j
|j |j <0A>\|_|_dS)a<>
Set the linestyle of the line.
Parameters
----------
ls : {'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
Possible values:
- A string:
=============================== =================
Linestyle Description
=============================== =================
``'-'`` or ``'solid'`` solid line
``'--'`` or ``'dashed'`` dashed line
``'-.'`` or ``'dashdot'`` dash-dotted line
``':'`` or ``'dotted'`` dotted line
``'None'`` or ``' '`` or ``''`` draw nothing
=============================== =================
Optionally, the string may be preceded by a drawstyle, e.g.
``'steps--'``. See :meth:`set_drawstyle` for details.
- Alternatively a dash tuple of the following form can be
provided::
(offset, onoffseq)
where ``onoffseq`` is an even length tuple of on and off ink
in points. See also :meth:`set_dashes`.
N)rlrmrzr")r[z--)r#r$r~r<>rrr<>rr<>r/r<>r<>r4r<>r<>r<>)rxr[rZr-r-r.r<>ys


zLine2D.set_linestylecCs|j<00>|<01>d|_dS)z<>
Set the line marker.
Parameters
----------
marker : marker style
See `~matplotlib.markers` for full description of possible
arguments.
TN)r<><00>
set_markerr<EFBFBD>)rxr<>r-r-r.r<00>s zLine2D.set_markercCs6|dkr d}|jdks&t<01>|j|k<03>r,d|_||_dS)zf
Set the marker edge color.
Parameters
----------
ec : color
Nr<4E>T)r<>r8r<>r<>)rxZecr-r-r.r<><00>s 
zLine2D.set_markeredgecolorcCs*|dkrtd}|j|kr d|_||_dS)zp
Set the marker edge width in points.
Parameters
----------
ew : float
Nzlines.markeredgewidthT)r
r<>r<>)rx<00>ewr-r-r.r<><00>s

zLine2D.set_markeredgewidthcCs,|dkr d}t<00>|j|k<03>r"d|_||_dS)zf
Set the marker face color.
Parameters
----------
fc : color
Nr<4E>T)r8r<>r<>r<>)rxr r-r-r.r<><00>s
zLine2D.set_markerfacecolorcCs,|dkr d}t<00>|j|k<03>r"d|_||_dS)zp
Set the alternate marker face color.
Parameters
----------
fc : color
Nr<4E>T)r8r<>r<>r<>)rxr r-r-r.r<><00>s
zLine2D.set_markerfacecoloraltcCs"t|<01>}|j|krd|_||_dS)zj
Set the marker size in points.
Parameters
----------
sz : float
TN)r<>r<>r<>)rx<00>szr-r-r.r<><00>s
zLine2D.set_markersizecCs||_d|_d|_dS)zg
Set the data array for x.
Parameters
----------
x : 1D array
TN)r<>r<>r<>)rxr1r-r-r.r<>szLine2D.set_xdatacCs||_d|_d|_dS)zg
Set the data array for y.
Parameters
----------
y : 1D array
TN)r<>r<>r<>)rxr<r-r-r.r<>szLine2D.set_ydatacCs2|dkst|<01>dkr |<00>d<03>n|<00>d|f<02>dS)a<>
Set the dash sequence.
The dash sequence is a sequence of floats of even length describing
the length of dashes and spaces in points.
For example, (5, 2, 1, 2) describes a sequence of 5 point and 1 point
dashes separated by 2 point spaces.
Parameters
----------
seq : sequence of floats (on/off ink in points) or (None, None)
If *seq* is empty or ``(None, None)``, the linestyle will be set
to solid.
)NNrrjN)r7r<>)rx<00>seqr-r-r.r<>s zLine2D.set_dashescCs<>t<00>||<01>|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j |_ |j
|_
|j |_ |j |_ |j |_ |j|_|j|_|j|_|j|_|j|_t|j<13><14>|j<13><15><00>|_|j|_dS)z#Copy properties from other to self.N)r <00> update_fromr<6D>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rr<>r<>r<>rr<>r<>r<>r<>)rx<00>otherr-r-r.r/s* 
zLine2D.update_fromcCs2|<01><00>}tj|j|d<01>|j|kr(d|_||_dS)z<>
Set the join style for dashed lines.
Parameters
----------
s : {'miter', 'round', 'bevel'}
For examples see :doc:`/gallery/lines_bars_and_markers/joinstyle`.
)<01>sTN)<06>lowerrr<00> validJoinr<6E>r<>)rxrr-r-r.r<>Hs

zLine2D.set_dash_joinstylecCs2|<01><00>}tj|j|d<01>|j|kr(d|_||_dS)z<>
Set the join style for solid lines.
Parameters
----------
s : {'miter', 'round', 'bevel'}
For examples see :doc:`/gallery/lines_bars_and_markers/joinstyle`.
)rTN)rrrrr<>r<>)rxrr-r-r.r<>Ws

zLine2D.set_solid_joinstylecCs|jS)zj
Return the join style for dashed lines.
See also `~.Line2D.set_dash_joinstyle`.
)r<>)rxr-r-r.<00>get_dash_joinstylefszLine2D.get_dash_joinstylecCs|jS)zj
Return the join style for solid lines.
See also `~.Line2D.set_solid_joinstyle`.
)r<>)rxr-r-r.<00>get_solid_joinstylenszLine2D.get_solid_joinstylecCs2|<01><00>}tj|j|d<01>|j|kr(d|_||_dS)z<>
Set the cap style for dashed lines.
Parameters
----------
s : {'butt', 'round', 'projecting'}
)rTN)rrr<00>validCaprr<>)rxrr-r-r.r<>vs

zLine2D.set_dash_capstylecCs2|<01><00>}tj|j|d<01>|j|kr(d|_||_dS)z<>
Set the cap style for solid lines.
Parameters
----------
s : {'butt', 'round', 'projecting'}
)rTN)rrrr"r<>r<>)rxrr-r-r.r<><00>s

zLine2D.set_solid_capstylecCs|jS)zh
Return the cap style for dashed lines.
See also `~.Line2D.set_dash_capstyle`.
)r)rxr-r-r.<00>get_dash_capstyle<6C>szLine2D.get_dash_capstylecCs|jS)zh
Return the cap style for solid lines.
See also `~.Line2D.set_solid_capstyle`.
)r<>)rxr-r-r.<00>get_solid_capstyle<6C>szLine2D.get_solid_capstylecCs
|jdkS)zi
Return whether line has a dashed linestyle.
See also `~.Line2D.set_linestyle`.
)z--z-.rk)r<>)rxr-r-r.r<><00>szLine2D.is_dashed)NNNNNNNNrzNNNNNNr{NN)F)N)F)T)T)T)Y<>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>
lineStylesr<EFBFBD>Z _drawStyles_lZ _drawStyles_srrr<00>markersZfilled_markers<72>
fillstyles<EFBFBD>
fillStylesZzorderr"rryr|r<00>
deprecated<EFBFBD>propertyr<79>r<>r<>r<>r<>r<>r<>r<>r<>r<>r r<><00>setterr<72>r<>r<>r<>r<>r<>r<>r rrrr<>rrr<>r<>r
r<>r<>r r rrrr<>r<>r<>r<>r<>r<>r~r<>r <00>dedent_interpdrr<>r<>r<>r<>r<>r<>r<>r<>rr<>r<>r r!r<>r<>r#r$r<>r-r-r-r.rh<00>s<> 
H 4  
*
   


   "!5   rhc@s(eZdZdZdd<03>Zdd<05>Zdd<07>ZdS) <09>VertexSelectora<72>
Manage the callbacks to maintain a list of selected vertices for
:class:`matplotlib.lines.Line2D`. Derived classes should override
:meth:`~matplotlib.lines.VertexSelector.process_selected` to do
something with the picks.
Here is an example which highlights the selected verts with red
circles::
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.lines as lines
class HighlightSelected(lines.VertexSelector):
def __init__(self, line, fmt='ro', **kwargs):
lines.VertexSelector.__init__(self, line)
self.markers, = self.axes.plot([], [], fmt, **kwargs)
def process_selected(self, ind, xs, ys):
self.markers.set_data(xs, ys)
self.canvas.draw()
fig, ax = plt.subplots()
x, y = np.random.rand(2, 30)
line, = ax.plot(x, y, 'bs-', picker=5)
selector = HighlightSelected(line)
plt.show()
cCs^|jdkrtd<02><01>|<01><02>dkr&td<03><01>|j|_||_|jjj|_|j<05>d|j<07>|_t <09>|_
dS)z<>
Initialize the class with a :class:`matplotlib.lines.Line2D`
instance. The line should already be added to some
:class:`matplotlib.axes.Axes` instance and should have the
picker property set.
Nz'You must first add the line to the Axesz2You must first set the picker property of the lineZ
pick_event) r<>r}Z
get_picker<EFBFBD>liner<65>ZcanvasZ mpl_connect<63>onpickZcid<69>setr<74>)rxr2r-r-r.r|<00>s
  zVertexSelector.__init__cCsdS)z<>
Default "do nothing" implementation of the
:meth:`process_selected` method.
*ind* are the indices of the selected vertices. *xs* and *ys*
are the coordinates of the selected vertices.
Nr-)rxr<><00>xsZysr-r-r.<00>process_selected<65>szVertexSelector.process_selectedcCsV|j|jk rdS|jt|j<02>N_t|j<02>}|j<01><05>\}}|<00>|||||<00>dS)z<When the line is picked, update the set of selected indices.N)rr2r<>r4<00>sortedrr6)rx<00>eventr<74>r<>r<>r-r-r.r3<00>s  
zVertexSelector.onpickN)r%r&r'r(r|r6r3r-r-r-r.r1<00>s
r1)Z_Line2D_docstr)?r(<00>numbersrrr<00>loggingZnumpyr8rmrrrr<>r r
r r r rrrr*rr<>rZ
transformsrrrrrrrrrrrrrr r!<00> getLoggerr%r<>r/r4rCrXZ_define_aliasesrh<00>objectr1r<>r)Z lineMarkersrr+r,Zinterpdr<64>Zkwdocr0r|r-r-r-r.<00><module>sX   8
%^\H