hyb
2025-12-30 5e753a15ff53faab2261a53367e44d38caf87041
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
Ë
nñúh’ãóâ—ddlmZddlmZmZddlmZmZmZm    Z    ddl
m Z m Z m Z mZmZddlZddlZddlZddlmZddlmZddlmZdd    lmZdd
lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd l)m*Z*m+Z+dd l,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2dd l3m4Z4ddl5m6cm7Z8ddl9m:Z:ddl;m<Z<ddl=m>Z>ddl?m@Z@ddlAmBZBddlCmDZDddlEmFZFddlGmHZHddlImJZJmKZKmLZLmMZMmNZNddlOmPZPmQZQmRZRmSZSmTZTmUZUe r*ddlVmWZWddlXmYZYddlZm[Z[ddl\m]Z]ddl^m_Z_m`Z`maZambZbddlcmdZdd1d„ZeGd„d e«ZfGd!„d"efe«ZgGd#„d$eg«ZhGd%„d&eg«ZiGd'„d(ef«ZjGd)„d*ej«ZkGd+„d,ef«ZlGd-„d.el«ZmGd/„d0ef«Zny)2é)Ú annotations)ÚABCÚabstractmethod)ÚHashableÚIterableÚIteratorÚSequence)Ú TYPE_CHECKINGÚAnyÚLiteralÚcastÚfinalN)Úlib©ÚAbstractMethodError)Úcache_readonly)Úfind_stack_level) Úis_any_real_numeric_dtypeÚis_boolÚis_floatÚis_float_dtypeÚ is_hashableÚ
is_integerÚis_integer_dtypeÚ is_iteratorÚ is_list_likeÚ    is_numberÚis_numeric_dtype)ÚCategoricalDtypeÚExtensionDtype)Ú ABCDataFrameÚABCDatetimeIndexÚABCIndexÚ ABCMultiIndexÚABCPeriodIndexÚ    ABCSeries)Úisna)Ú    DataFrame)ÚVersion)Ú pprint_thing)Útools)Ú%register_pandas_matplotlib_converters)Úreconstruct_data_with_by)Úunpack_single_str_list)Úget_standard_colors)Ú decorate_axesÚformat_dateaxisÚmaybe_convert_indexÚmaybe_resampleÚ use_dynamic_x)Úcreate_subplotsÚ flatten_axesÚformat_date_labelsÚ get_all_linesÚget_xlimÚhandle_shared_axes)ÚArtist©ÚAxes)ÚAxis)ÚFigure)Ú
IndexLabelÚNDFrameTÚPlottingOrientationÚnpt)ÚSeriescóD—ddlm}t|«j|« S)z?
    Check if there is a color letter in the style string.
    r)Ú BASE_COLORS)Úmatplotlib.colorsrFÚsetÚ
isdisjoint)ÚstylerFs  úSH:\Change_password\venv_build\Lib\site-packages\pandas/plotting/_matplotlib/core.pyÚ_color_in_stylerLcs €õ.ä;Ó×*Ñ*¨5Ó1Ð 1Ð1óc    óà—eZdZUdZeed9d„««ZdZdZed:d„«Z    de
d<                                                                                                        d;d    d    d    d
d    ddd œ                                                                                                                                                                    d<d „Z e e d=d „««Ze                        d>d„«Ze e                                 d?d„««Zd„Ze e                 d@d„««ZdAd„Ze edBd„««Ze dCd„«Ze dCd„«Ze e dDd„««Ze dEd„«Ze edFd„««Ze edGd„««Ze edHd„««Zed„«Ze e d„««Ze dId„«Z e dCd„«Z!dJd„Z"e dCd „«Z#e dKd!„«Z$edKd"„«Z%e dJd#„«Z&e e     dL                    dMd$„««Z'e ed:d%„««Z(e dNd&„«Z)e dOd'„«Z*dCd(„Z+e e dPd)„««Z,e ed*„««Z-d    Z.e d+„«Z/ee0    dQ                    dRd,„««Z1d-„Z2e d:d.„«Z3e edSdTd/„««Z4e dUd0„«Z5e dVd1„«Z6e dVd2„«Z7e                         dWd3„«Z8        dX            dYd4„Z9e e                                 dZd5„««Z:e     d[                    d\d6„«Z;e d]d7„«Z<e d^d8„«Z=y)_ÚMPLPlotzm
    Base class for assembling a pandas plot using matplotlib
 
    Parameters
    ----------
    data :
 
    có—t‚)z3Specify kind str. Must be overridden in child class)ÚNotImplementedError©Úselfs rKÚ_kindz MPLPlot._kindvs
€ô"Ð!rMÚverticalrcó—y©N©rRs rKÚ orientationzMPLPlot.orientationó€àrMr(ÚdataNFT)ÚlogxÚlogyÚloglogÚ
mark_rightÚstackedÚlabelrJc óB—ddlm}$|gdfvr td«‚tj|«|_t |t«r“|rtj|«|_nv|j
€/|jD%cgc]}%t||%«sŒ|%‘Œc}%|_n;|jD%cgc] }%|%|j
vrt||%«r|%‘Œ"c}%|_|j
8|jdk(r)|jt|j
««|_ ||_t|«j!|||j¬«|_t|«j%|| |«|_||_||_||_||_||_||_||_||_||_||_||_||_| | |_ d|_!nd|_!|jD|_ |    €|rdn|$jFd}    |    |_$|
|_%g|_&g|_'t|«jQd    |«|_)t|«jQd
|«|_*t|«jQd |«|_+|!|_,|"|_-||_.| |_/| |_0|#jcd d«}&|#jcd d«}'|je|«}(t|«jgd |&||(«\}&}t|«jgd |'||(«\}'}|&|'dœ|_4||_5t |tltntptrjttvf«s|g}||_<d|#vr |r t{d«‚d|#vr|#jcd«|_>n||_>||_?||_@|#|_A|#jcdt„j†«})|j‰|)|j|«|_Ed|j‚vsJ‚|j|jj«|_5ycc}%wcc}%w)NrrXzNo group keys passed!Úhist)ÚkindTFz    axes.gridr\r]r^ÚxerrÚyerr)rerfÚcmapz*Only specify one of `cmap` and `colormap`.Úcolor)GÚmatplotlib.pyplotÚpyplotÚ
ValueErrorÚcomÚmaybe_make_listÚbyÚ
isinstancer(ÚcolumnsrrTÚgroupbyr.Ú_groupedrdÚtypeÚ_validate_subplots_kwargÚsubplotsÚ_validate_sharexÚsharexÚshareyÚfigsizeÚlayoutÚxticksÚyticksÚxlimÚylimÚtitleÚ    use_indexÚxlabelÚylabelÚfontsizeÚrotÚ_rot_setÚ _default_rotÚrcParamsÚgridÚlegendÚlegend_handlesÚ legend_labelsÚ_validate_log_kwdr\r]r^rarJr_r`ÚaxÚpopÚ _get_nseriesÚ_parse_errorbarsÚerrorsr[ÚboolÚtupleÚlistÚnpÚndarrayr#Ú secondary_yÚ    TypeErrorÚcolormapÚtableÚ include_boolÚkwdsrÚ
no_defaultÚ_validate_color_argsrhÚ _ensure_frame)*rSr[rdrnrurwrxr€ryrˆr‰r„rÚfigrr}r~r{r|rr‚rƒr—r™ršrzr›Úcolumnr\r]r^r_r`rarJrœÚpltÚcolrerfÚnseriesrhs*                                          rKÚ__init__zMPLPlot.__init__…s¨€õN    (ð "b‰>ÜÐ4Ó5Ð 5Ü×%Ñ% bÓ)ˆŒô
dœIÔ &ÙÜ"×2Ñ2°6Ó:• Ø—‘à#'§<¡<ö ØÔ3CÀDÈÁIÕ3N’Cò • ð  $Ÿ|™|ö àØ $§'¡'Ñ)Ô.>¸tÀC¹yÔ.Iòò ” ð 7‰7Ð  4§:¡:°Ò#7Ø ŸL™LÔ)?ÀÇÁÓ)HÓIˆDŒMàˆŒ    ä˜T›
×;Ñ;Ø d §¡ð<ó
ˆŒ ô˜4“j×1Ñ1°&¸"¸bÓAˆŒ ؈Œ ؈Œ ؈Œ àˆŒ ؈Œ ؈Œ    ØˆŒ    ØˆŒ
Ø"ˆŒØˆŒ ؈Œ à ˆŒ à ˆ?؈DŒHð!ˆDMà!ˆDŒMØ×(Ñ(ˆDŒHà ˆ<Ù'‘5¨S¯\©\¸+Ñ-FˆDàˆŒ    ØˆŒ Ø,.ˆÔØ-/ˆÔ䘓J×0Ñ0°¸Ó>ˆŒ    Ü˜“J×0Ñ0°¸Ó>ˆŒ    Ü˜4“j×2Ñ2°8¸VÓDˆŒ ؈Œ
؈Œ
Ø$ˆŒØˆŒ ðˆŒð
x‰x˜ Ó%ˆØx‰x˜ Ó%ˆØ×#Ñ# DÓ)ˆÜ˜$“Z×0Ñ0°¸¸tÀWÓM‰
ˆˆdܘ$“Z×0Ñ0°¸¸tÀWÓM‰
ˆˆdØ#¨TÑ2ˆŒ ؈Œ    ä˜+¬¬e´T¼2¿:¹:ÄxÐ'PÔQØ&˜-ˆKØ&ˆÔð T‰>™hÜÐHÓIÐ IØ T‰>Ø ŸH™H VÓ,ˆDMà$ˆDŒMàˆŒ
Ø(ˆÔàˆŒ    à—‘˜¤#§.¡.Ó1ˆØ×.Ñ.¨u°d·m±mÓDˆŒ
ؘdŸi™iÑ'Ð'Ð'à×&Ñ& t§y¡yÓ1ˆ    ùòG ùò sÁ9P PÂ(%Pcó„—|€|€|€ d}t|«Sd}t|«St|«s td«‚t|«S)NTFzsharex must be a bool or None)rr˜r’)rwrrns   rKrvzMPLPlot._validate_sharex sU€ð ˆ>àˆz˜b˜jؐôF‹|ÐðôF‹|Ðô˜”ÜÐ;Ó<Ð <ܐF‹|ÐrMcóx—|%t|t«st|t«r|dk(r|Std|›d|›d«‚)NÚsymz    keyword 'z'' should be bool, None, or 'sym', not 'ú')ror’Ústrrk)ÚclsÚkwdÚvalues   rKrŒzMPLPlot._validate_log_kwd/sH€ð ˆMܘ%¤Ô&ܘ5¤#Ô&¨5°Eª>àˆLÜØ˜uÐCÀEÀ7È!Ð Ló
ð    
rMcó¢—t|t«r|St|t«s td«‚d}||vr!tddj    |«›d|›d«‚t|t
«r t d«‚|j}t|t«r t d«‚|j«t|«k7r t d    «‚g}t«}|D]Å}t|«s td
«‚|j|«}|d k(j«r1tj |d k(|«}    td t#|    «›d «‚t|«}
|j%|
«} | rtd| ›d«‚|j'|
«}|j)t+|««ŒÇ|j-|«} | D]%} |j/| «}|j)|f«Œ'|S)a_
        Validate the subplots parameter
 
        - check type and content
        - check for duplicate columns
        - check for invalid column names
        - convert column names into indices
        - add missing columns in a group of their own
        See comments in code below for more details.
 
        Parameters
        ----------
        subplots : subplots parameters as passed to PlotAccessor
 
        Returns
        -------
        validated subplots : a bool or a list of tuples of column indices. Columns
        in the same tuple will be grouped together in the resulting plot.
        z(subplots should be a bool or an iterable)ÚlineÚbarÚbarhrcÚkdeÚdensityÚareaÚpiez2When subplots is an iterable, kind must be one of z, z. Got ú.z3An iterable subplots for a Series is not supported.zOAn iterable subplots for a DataFrame with a MultiIndex column is not supported.zTAn iterable subplots for a DataFrame with non-unique column labels is not supported.zPWhen subplots is an iterable, each entry should be a list/tuple of column names.éÿÿÿÿzColumn label(s) z not found in the DataFrame.z3Each column should be in only one subplot. Columns z! were found in multiple subplots.)ror’rrkÚjoinr&rQrpr$ÚnuniqueÚlenrHrÚget_indexer_forÚanyr•Úextractr”Ú intersectionÚunionÚappendr“Ú
differenceÚget_loc)rur[rdÚsupported_kindsrpÚoutÚ seen_columnsÚgroupÚidx_locsÚ
bad_labelsÚunique_columnsÚ
duplicatesÚunseen_columnsr¡Úidx_locs               rKrtz MPLPlot._validate_subplots_kwarg?s€ô2 h¤Ô %؈OܘH¤hÔ/ÜÐGÓHÐ Hð    
ˆð Ñ &ÜðØŸ)™) OÓ4Ð5°V¸D¸6ÀðDóð ô
dœIÔ &Ü%ØEóð ð—,‘,ˆÜ gœ}Ô -Ü%ð$óð ð
?‰?Ó ¤ G£ Ò ,Ü%ð+óð ð$ˆÜ&)£eˆ Øò    (ˆEÜ Ô&Ü ð>óðð×.Ñ.¨uÓ5ˆHؘB‘×#Ñ#Ô%ÜŸZ™Z¨°B©¸Ó>
Ü Ø&¤t¨JÓ'7Ð&8Ð8TÐUóðô! ›ZˆNØ%×2Ñ2°>ÓBˆJÙÜ ðØ)˜lÐ*KðMóðð(×-Ñ-¨nÓ=ˆLØ J‰J”u˜X“Õ 'ð)    (ð,!×+Ñ+¨LÓ9ˆØ$ò    #ˆFØ—o‘o fÓ-ˆGØ J‰J˜zÕ "ð    #ðˆ
rMcó—|tjur0d|jvr!|tjdt «¬«y|j dk(r|t|«s|g}t|t«r|j dk(rt|«dvr|g}|tjdt «¬«|jLt|j«r |j}n |jg}|D]}t|«sŒtd«‚|S)NÚcolorszC'color' and 'colormap' cannot be used simultaneously. Using 'color'©Ú
stacklevelé)éézCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbol)rrrœÚwarningsÚwarnrr¤rror“rºrJrLrk)rSrhr™ÚstylesÚss     rKržzMPLPlot._validate_color_argsªsù€Ø ”C—N‘NÑ "à˜4Ÿ9™9Ñ$¨Ð)=Ü— ‘ ð$ä/Ó1õð
Ø <‰<˜1Ò  Ð!2¼<ÈÔ;NàGˆEä eœUÔ #¨¯ © ¸Ò(9¼cÀ%»jÈFÑ>RàGˆEà Ð Ü M‰MØUÜ+Ó-õ ð
:‰:Ð !ܘDŸJ™JÔ'ØŸ™‘àŸ*™*˜àò Ü" 1Õ%Ü$ðGóðð ðˆ rMc#ó‚K—|j«D](\}}|tj|j«f–—Œ*y­wrW)Úitemsr•ÚasarrayÚvalues)r[r£rÛs   rKÚ
_iter_datazMPLPlot._iter_dataÑs;èø€ð
 Ÿ:™:›<ò    1‰KˆCð”r—z‘z &§-¡-Ó0Ð0Ó 0ñ        1ùs‚=?có—|jdk(ry|j$|jdk(rt|j«S|j$|jdk(rt|j
«S|j dS)NrÑrcÚbox)ÚndimrnrTrºrrrpÚshape©rSr[s  rKrzMPLPlot._get_nseriesÜsh€ð 9‰9˜Š>ØØ W‰WÐ   T§Z¡Z°6Ò%9ܐt—}‘}Ó%Ð %Ø W‰WÐ   T§Z¡Z°5Ò%8ܐt—|‘|Ó$Ð $à—:‘:˜a‘=Ð  rMcó8—|j|j«SrW)rr[rRs rKr¤zMPLPlot.nseriesès€ð× Ñ  §¡Ó+Ð+rMcó8—|jj«yrW)r¢Údraw_if_interactiverRs rKÚdrawz MPLPlot.drawís€à ‰×$Ñ$Õ&rMcó<—|j«|j}|j|«|j«|j    «|j |«|j D]/}|j|«|j||j«Œ1yrW)
Ú_compute_plot_datar Ú
_make_plotÚ
_add_tableÚ _make_legendÚ_adorn_subplotsÚaxesÚ_post_plot_logic_commonÚ_post_plot_logicr[)rSr rs   rKÚgeneratezMPLPlot.generateñs|€à ×ÑÔ!؏h‰hˆØ ‰˜ÔØ ‰ÔØ ×ÑÔØ ×јSÔ!à—)‘)ò    1ˆBØ × (Ñ (¨Ô ,Ø × !Ñ ! " d§i¡iÕ 0ñ    1rMcóš—t|j«dk7xs2t|j«dk7xst|j«dk7S)zcheck whether ax has datar)rºÚlinesÚartistsÚ
containers)rs rKÚ_has_plotted_objectzMPLPlot._has_plotted_objectþs=€ô2—8‘8‹} Ñ!ÒT¤S¨¯©£_¸Ñ%9ÒT¼SÀÇÁÓ=OÐSTÑ=TÐTrMcó8—|j|«s|j|«St|d«r |jSt|d«r|S||j    «}}|j
|_|j |_||c|_|_|j|«s|j«jd«|jdus|jdur|jd«|S|jdk(s|jdk(r|jd«|S)NÚright_axÚleft_axFTÚlogr¨Úsymlog)Úon_rightÚ _get_ax_layerÚhasattrröÚtwinxÚ
_get_linesÚ_get_patches_for_fillr÷rôÚ    get_yaxisÚ set_visibler]r^Ú
set_yscale)rSrÚaxes_numÚorig_axÚnew_axs     rKÚ_maybe_right_yaxiszMPLPlot._maybe_right_yaxiss    €à}‰}˜XÔ&à×%Ñ% bÓ)Ð )ä 2zÔ "à—;‘;Ð Ü R˜Ô #àˆIð! "§(¡(£*VˆGà '× 2Ñ 2ˆFÔ ð×-Ñ-ð Ô (ð
Øð -ˆGÔ ˜fœnð
×+Ñ+¨GÔ4Ø×!Ñ!Ó#×/Ñ/°Ô6ày‰y˜DÑ  D§K¡K°4Ñ$7Ø×!Ñ! %Ô(ðˆM𗑘eÒ# t§{¡{°eÒ';Ø×!Ñ! (Ô+؈MrMcó —|jdS©NrÑ©Ú _axes_and_figrRs rKr z MPLPlot.fig(s€ð×!Ñ! !Ñ$Ð$rMcó —|jdS©Nrr    rRs rKrìz MPLPlot.axes-s€ð×!Ñ! !Ñ$Ð$rMc    ó¦—|jrt|jt«r |jnt    |j«}t ||j |j|j|j|j|j¬«\}}n‘|j€8|jj|j¬«}|jd«}nM|jj«}|j|j!|j«|j}t#|«}|j$dus|j&dur |Dcgc]}|j)d«‘Œc}n=|j$dk(s|j&dk(r|Dcgc]}|j)d«‘Œc}|j*dus|j&dur |Dcgc]}|j-d«‘Œc}n=|j*dk(s|j&dk(r|Dcgc]}|j-d«‘Œc}t/t0d|«}||fScc}wcc}wcc}wcc}w)    N)ÚnaxesrwrxryrrzÚ layout_type)ryéoTrør¨rùr=)ruror’r¤rºr5rwrxryrrzÚ _layout_typer¢ÚfigureÚ add_subplotÚ
get_figureÚset_size_inchesr6r\r^Ú
set_xscaler]rr r    )rSrr rìÚaÚaxes_seqs      rKr
zMPLPlot._axes_and_fig3sÀð =Š=ä *¨4¯=©=¼$Ô ?— ’ ÄSÈÏÉÓEWð ô(ØØ—{‘{Ø—{‘{ØŸ ™ Ø—7‘7Ø—{‘{Ø ×-Ñ-ô‰IˆC‘ðW‰Wˆ_Ø—(‘(—/‘/¨$¯,©,/Ó7ˆCØ—?‘? 3Ó'‰Dà—'‘'×$Ñ$Ó&ˆC؏|‰|Ð'Ø×#Ñ# D§L¡LÔ1Ø—7‘7ˆDä˜DÓ!ˆà 9‰9˜Ñ  § ¡ ¨tÑ 3Ø*.Ö / QˆQ\‰\˜%Õ  Ô /Ø Y‰Y˜%Ò  4§;¡;°%Ò#7Ø-1Ö 2¨ˆQ\‰\˜(Õ #Ó 2à 9‰9˜Ñ  § ¡ ¨tÑ 3Ø*.Ö / QˆQ\‰\˜%Õ  Ô /Ø Y‰Y˜%Ò  4§;¡;°%Ò#7Ø-1Ö 2¨ˆQ\‰\˜(Õ #Ó 2䜠Ñ(¨$Ó/ˆØ˜ˆ}Ðùò 0ùâ 2ùò 0ùâ 2sÅH?ÆIÇI    È Icóâ—|jrP|j8t|j«s#|jj
|jŽS|jSt |jt«xr |j}t|j«xr"t|j«|jk(}|s|r |j|jdd¬«S|jdS)z$
        Return result axes
        rF)Úprimary) rurzrrrìÚreshaperor—r’rºr¤rû)rSÚsec_trueÚall_secs   rKÚresultzMPLPlot.result[sƀð
=Š=؏{‰{Ð&¬|¸D¿G¹GÔ/Dà(t—y‘y×(Ñ(¨$¯+©+Ð6Ð6à—y‘yРä! $×"2Ñ"2´DÓ9ÒN¸d×>NÑ>NˆHô˜T×-Ñ-Ó.ò:ܘ×(Ñ(Ó)¨T¯\©\Ñ9ð ñ™7à×)Ñ)¨$¯)©)°A©,ÀÐ)ÓFÐFà—y‘y ‘|Ð#rMcóN—t|jt«r|St|j«st    |j«r;t|jt
«r!|j dtj¬«St|«dkDrtj|«S|S)NÚfloat)ÚdtypeÚna_valuer) ror!rrrr Úto_numpyr•ÚnanrºrÚ©r[s rKÚ_convert_to_ndarrayzMPLPlot._convert_to_ndarrayts|€ô d—j‘jÔ"2Ô 3؈Kô ˜TŸZ™ZÔ (¬N¸4¿:¹:Ô,FÌJØ J‰JœôM
ð—=‘= w¼¿¹=Ó@Ð @ô ˆt‹9qŠ=Ü—:‘:˜dÓ#Ð #àˆ rMcóR—t|t«rD|j}|€|j€d}|€|j    «}|S|j    |¬«}|S|j
dvrD|j € |jn|j|j z}|jdd…|f}|S)NÚ)Úname)rcrÞ)    ror&rar)Úto_framerTrnrpÚloc)rSr[raÚcolss    rKrŸzMPLPlot._ensure_frameˆs€ä dœIÔ &Ø—J‘JˆE؈} §¡Ð!2ؐ؈}à—}‘}“ð ˆ ð    —}‘}¨%}Ó0ðˆ ðZ‰Z˜?Ñ *Ø#'§7¡7 ?4—<’<¸¿ ¹ ÀtÇwÁwÑ8NˆDØ—8‘8šA˜t˜GÑ$ˆD؈ rMcó„—|j}|j3d|_t|j|j|j¬«}|j d¬«}t jdddg}|jdur|jt j«d}|jdk(rt jg}dg}|jd    k(r|jgd
¢«|j||¬ «}|jd d k(}|r td«‚|j!t#|«j$«|_y)NT)rnr,F)ÚcopyÚdatetimeÚ
datetimetzÚ    timedeltarÞÚscatter)ÚobjectÚcategoryÚstring)ÚincludeÚexcluder·rzno numeric data to plot)r[rnrur-rpÚ infer_objectsr•Únumberr›rÀÚbool_rTÚextendÚ select_dtypesràr˜Úapplyrsr&)rSr[Ú include_typeÚ exclude_typeÚ numeric_dataÚis_emptys      rKrçzMPLPlot._compute_plot_data˜s€ày‰yˆð 7‰7Ð Ø ˆDŒMÜ+¨D¯I©I¸$¿'¹'ÈÏ É ÔUˆDð×!Ñ! uÐ!Ó-ˆÜŸ    ™     :¨|¸[ÐIˆ ð × Ñ  Ñ $Ø × Ñ ¤§¡Ô )ðˆ Ø :‰:˜Ò äŸI™I˜;ˆLØ'˜=ˆLð :‰:˜Ò "Ø × Ñ Ò @Ô Aà×)Ñ)°,È Ð)ÓUˆ à×%Ñ% bÑ)¨QÑ.ˆá ÜÐ5Ó6Ð 6à ×&Ñ&¤t¨D£z×'EÑ'EÓFˆ    rMcó—t|«‚rWr)rSr s  rKrèzMPLPlot._make_plot¾s €Ü! $Ó'Ð'rMcóڗ|jdury|jdur|jj«}n |j}|jd«}t    j||«y)NFTr)ršr[Ú    transposeÚ_get_axr+)rSr[rs   rKrézMPLPlot._add_tableÁsS€à :‰:˜Ñ Ø Ø Z‰Z˜4Ñ Ø—9‘9×&Ñ&Ó(‰Dà—:‘:ˆDØ \‰\˜!‹_ˆÜ  ‰ B˜ÕrMcó.—|jdk(s |j€³t|«j|j|j|j
¬«t|«j|j |j
¬«t|d«r;t|«j|jj |j
¬«yy|jdk(r³t|«j|j |j|j
¬«t|«j|j|j
¬«t|d«r;t|«j|jj |j
¬«yyt‚)z!Common post process for each axesrUN)r„rƒ)rƒröÚ
horizontal)
rYrsÚ_apply_axis_propertiesÚxaxisr„rƒÚyaxisrürörk)rSrs  rKrízMPLPlot._post_plot_logic_commonÌs=€ð × Ñ ˜zÒ )¨T×-=Ñ-=Ð-EÜ ‹J× -Ñ -Ø—‘˜dŸh™h°·±ð .ô ô ‹J× -Ñ -¨b¯h©hÀÇÁÐ -Ô Oär˜:Ô&ܐT“
×1Ñ1Ø—K‘K×%Ñ%°· ± ð2õð'ð
× Ñ  Ò -Ü ‹J× -Ñ -Ø—‘˜dŸh™h°·±ð .ô ô ‹J× -Ñ -¨b¯h©hÀÇÁÐ -Ô Oär˜:Ô&ܐT“
×1Ñ1Ø—K‘K×%Ñ%°· ± ð2õð'ô
Ð rMcó—y)z7Post process for each axes. Overridden in child classesNrX©rSrr[s   rKrîzMPLPlot._post_plot_logicçsrMc    ó*—t|j«dkDrW|j|«}|j|«\}}t    |t|«||z|||j
|j ¬«|jD]ö}t|d|«}|j|j|j«|j|j|j«|j|j|j«|j|j|j«|j $|j#t%|j ««|j'|j&«Œø|j(r|j*r»t-|j(«rŠt|j(«|j.k7r.t1dt|j(«›d|j.›«‚t3|j|j(«D]\}}|j5|«Œy|j7|j(«yt-|j(«r d}t1|«‚|jdj5|j(«yy)z%Common post process unrelated to datar)ÚaxarrÚnplotsrÚnrowsÚncolsrwrxröNz~The length of `title` must equal the number of columns if using `title` of type `list` and `subplots=True`.
length of title = z
number of columns = zNUsing `title` of type `list` is not supported unless `subplots=True` is passed)rºrìÚ _get_subplotsÚ_get_axes_layoutr:rwrxÚgetattrr|Ú
set_yticksr{Ú
set_xticksr~Úset_ylimr}Úset_xlimr‚Ú
set_ylabelr*rˆrrurr¤rkÚzipÚ    set_titleÚsuptitle)rSr Úall_axesrPrQrrÚmsgs        rKrëzMPLPlot._adorn_subplotsës €ô ˆty‰y‹>˜AÒ Ø×)Ñ)¨#Ó.ˆHØ×0Ñ0°Ó5‰LˆE5Ü ØÜ˜8“}ؘe‘mØØØ—{‘{Ø—{‘{õ ð—)‘)ò    ˆBܘ˜Z¨Ó,ˆB؏{‰{Ð&Ø— ‘ ˜dŸk™kÔ*à{‰{Ð&Ø— ‘ ˜dŸk™kÔ*ày‰yÐ$Ø— ‘ ˜DŸI™IÔ&ày‰yÐ$Ø— ‘ ˜DŸI™IÔ&ð{‰{Ð&Ø— ‘ œl¨4¯;©;Ó7Ô8à G‰GD—I‘IÕ ð'    ð* :‹:؏}Š}Ü §
¡
Ô+ܘ4Ÿ:™:“¨$¯,©,Ò6Ü(ð1ô25°T·Z±Z³Ð0AðB3Ø37·<±<°.ð    Bóðô&)¨¯©°D·J±JÓ%?ò,™    ˜˜EØŸ ™  UÕ+ñ,ð—L‘L §¡Õ,ä §
¡
Ô+ð;ðô% S›/Ð)Ø—    ‘    ˜!‘ ×&Ñ& t§z¡zÕ2ð/ rMcó¬—|€|P|j«|j«z}|D])}||j|«|€Œ|j|«Œ+yy)a
        Tick creation within matplotlib is reasonably expensive and is
        internally deferred until accessed as Ticks are created/destroyed
        multiple times per draw. It's therefore beneficial for us to avoid
        accessing unless we will act on the Tick.
        N)Úget_majorticklabelsÚget_minorticklabelsÚ set_rotationÚ set_fontsize)Úaxisr„rƒÚlabelsras     rKrHzMPLPlot._apply_axis_properties)se€ð ˆ?˜hÐ2à×-Ñ-Ó/°$×2JÑ2JÓ2LÑLˆFØò 1Ø?Ø×&Ñ& sÔ+ØÑ'Ø×&Ñ& xÕ0ñ     1ð3rMcó&—t|jjt«s/|jjj}| t |«}|St t
|jjj«}dj|«S©Nú,)    ror[rpr$r)r*ÚmapÚnamesr¸)rSr)Ú stringifieds   rKÚ legend_titlezMPLPlot.legend_title=sm€ô˜$Ÿ)™)×+Ñ+¬]Ô;Ø—9‘9×$Ñ$×)Ñ)ˆDØÐÜ# DÓ)ØˆKäœl¨D¯I©I×,=Ñ,=×,CÑ,CÓDˆKØ—8‘8˜KÓ(Ð (rMcób—|js"|jr|j|«r|dz }|S)z§
        Append ``(right)`` to the label of a line if it's plotted on the right axis.
 
        Note that ``(right)`` is only appended when ``subplots=False``.
        z (right))rur_rú)rSraÚindexs   rKÚ_mark_right_labelzMPLPlot._mark_right_labelIs+€ð}Š} §¢°T·]±]À5Ô5IØ ZÑ ˆE؈ rMcóp—|jj|«|jj|«y)zŽ
        Append current handle and label to ``legend_handles`` and ``legend_labels``.
 
        These will be used to make the legend.
        N)rŠrÀr‹)rSÚhandleras   rKÚ_append_legend_handles_labelsz%MPLPlot._append_legend_handles_labelsTs,€ð     ×Ñ×"Ñ" 6Ô*Ø ×Ñ×!Ñ! %Õ(rMcóú—|j|jd«\}}g}g}d}|js0|‡|j«j    «}t t j«t d«kr |j}n |j}|j«Dcgc]}|j    «‘Œ}}|jrv|jdk(r1|t|j«z }|t|j«z }n||jz }||jz }|j |j}t|«dkDr|j||d|¬«yy|jrz|jrm|jD]]}|j!«sŒt#j$«5t#j&ddt(«|jd¬    «ddd«Œ_yyycc}w#1swYŒqxYw)
Nrr(z3.7ÚreverseÚbest)r+rÚignorez.No artists with labels found to put in legend.)r+)Ú_get_ax_legendrìruÚ    get_titleÚget_textr)ÚmplÚ __version__Ú legendHandlesrŠÚ    get_textsr‰Úreversedr‹rlrºÚ get_visiblerÔÚcatch_warningsÚfilterwarningsÚ UserWarning)rSrÚlegÚhandlesrerÚxs       rKrêzMPLPlot._make_legend^s¶€Ø×%Ñ% d§i¡i°¡lÓ3‰ˆˆCàˆØˆØˆà}‹}؈؟ ™ ›×0Ñ0Ó2äœ3Ÿ?™?Ó+¬g°e«nÒ<Ø!×/Ñ/‘Gà!×0Ñ0GØ03· ± ³Ö@¨1˜!Ÿ*™*,Ð@Ð@à{Š{Ø—;‘; )Ò+Øœx¨×(;Ñ(;Ó<Ñ<GØœh t×'9Ñ'9Ó:Ñ:‘Fà˜t×2Ñ2Ñ2Gؘd×0Ñ0Ñ0Fà×$Ñ$Ð0Ø ×-Ñ-Eä7‹|˜aÒØ—    ‘    ˜' 6¨v¸U    ÕCð ð]Š]˜tŸ{š{Ø—i‘iò .Ø—>‘>Õ#Ü!×0Ñ0Ó2ñ.Ü ×/Ñ/Ø$ØLÜ'ôð
Ÿ    ™     f˜    Ô-÷ .ð.ñ .ð +ˆ]ùò!A÷&.ð.úsÂ%G,Æ1.G1Ç1G:    cóš—|j«}t|dd«xs t|dd«}d}||j«}|€||}|}||fS)zQ
        Take in axes and return ax and legend under different scenarios
        r÷Nrö)Ú
get_legendrT)rrƒÚother_axÚ    other_legs    rKrwzMPLPlot._get_ax_legendˆsa€ð m‰m‹oˆä˜2˜y¨$Ó/ÒP´7¸2¸zÈ4Ó3PˆØˆ    Ø Ð Ø ×+Ñ+Ó-ˆIØ ˆ;˜9Ð0؈C؈Bؐ3ˆwˆrMcó—ddlm}|Sr )rirj)rSr¢s  rKr¢z MPLPlot.plt™s €õ    (àˆ
rMcóâ—|jj}|jdv}|jr¡t    |t
«r |j «j«}|St|j«r|j«}|St    |t«s|r|j«}|Sd|_ ttt|«««}|Sttt|«««}|S)N)r/ÚdateÚ
datetime64ÚtimeT)r[rnÚ inferred_typer€ror%Ú to_timestampÚ    _mpl_reprrr!r"Ú_need_to_set_indexr”Úrangerº)rSrnÚ is_datetyper…s    rKÚ _get_xtickszMPLPlot._get_xticks¢sԀà—    ‘    —‘ˆØ×)Ñ)Ð-WÐWˆ ð >Š>ܘ%¤Ô0à×&Ñ&Ó(×2Ñ2Ó4ð"ˆô+¨5¯;©;Ô7ð
—O‘OÓ%ðˆô˜EÔ#3Ô4¹ Ø—O‘OÓ%ðˆð +/Ô'Üœœs 5›zÓ*Ó+ðˆô”Uœ3˜u›:Ó&Ó'ˆAàˆrMc ó—t|«}|j«r?tjj    |«}tjj ||«}t |t«r|j«}|rjd|vr'tj|jd««|d<d|vr'tj|jd««|d<|j||fi|¤ŽS||||fn||f}|j|i|¤ŽS©Nrerf) r'r¼r•ÚmaÚarrayÚ masked_whereror#r‘ÚgetÚerrorbarÚplot)    r«rr…ÚyrJÚ is_errorbarrœÚmaskÚargss             rKÚ_plotz MPLPlot._plot¿s߀ô
A‹wˆØ 8‰8Œ:Ü—‘— ‘ ˜A“ˆAÜ—‘×"Ñ" 4¨Ó+ˆAä aœÔ "Ø— ‘ “ ˆAá Ø˜‰~Ü!Ÿx™x¨¯©°Ó(8Ó9V‘ ؘ‰~Ü!Ÿx™x¨¯©°Ó(8Ó9V‘ ؐ2—;‘;˜q !Ñ, tÑ,Ð ,ð%*Ð$5Aq˜%‘=¸A¸q¸6ˆDؐ2—7‘7˜DÐ) DÑ)Ð )rMcó—|jS)zCSpecify whether xlabel/ylabel should be used to override index name)rrRs rKÚ_get_custom_index_namezMPLPlot._get_custom_index_name×ó €à{‰{ÐrMcó¨—t|jjt«r^|jjj}t j |Žr)dj|Dcgc] }t|«‘Œc}«}n0d}n-|jjj}| t|«}|j«}| t|«}|Scc}wrg) ror[rnr$rjrlÚ any_not_noner¸r*r)r¤)rSr)r…Ú
index_names    rKÚ_get_index_namezMPLPlot._get_index_nameÛs¥€ä d—i‘i—o‘o¤}Ô 5Ø—9‘9—?‘?×(Ñ(ˆDÜ×Ñ Ñ&Ø—x‘x¸$Ö ?°Q¤¨a¥Ò ?Ó@‘à‘à—9‘9—?‘?×'Ñ'ˆDØÐÜ# DÓ)ð×0Ñ0Ó2ˆ
Ø Ð !Ü 
Ó+ˆDàˆ ùò!@sÁ&Ccó:—|r t|d|«St|d|«S)z,get left (primary) or right (secondary) axesr÷rö)rT)r«rrs   rKrûzMPLPlot._get_ax_layerïs%€ñ ܘ2˜y¨"Ó-Ð -ä˜2˜z¨2Ó.Ð .rMcóЇ—t|jt«r'tˆfd„t    |j«D««S‰S)zJReturn the index of the axis where the column at col_idx should be plottedc3ó0•K—|] \}}‰|vr|–—Œy­wrWrX)Ú.0Ú    group_idxrÆÚcol_idxs   €rKú    <genexpr>z/MPLPlot._col_idx_to_axis_idx.<locals>.<genexpr>ýs%øèø€òá&Y Ø˜eÑ#ôñùsƒ)rorur”ÚnextÚ    enumerate)rSr¯s `rKÚ_col_idx_to_axis_idxzMPLPlot._col_idx_to_axis_idxøs=ø€ô d—m‘m¤TÔ *äóä*3°D·M±MÓ*Bôóð ðˆNrMcó"—|jrB|j|«}|j|}|j||«}||j|<n!|jd}|j||«}|j    «j d«|S)NrT)rur³rìrrr)rSÚirs   rKrEzMPLPlot._get_axs€ð =Š=Ø×)Ñ)¨!Ó,ˆAØ—‘˜1‘ˆBØ×(Ñ(¨¨QÓ/ˆBàˆDI‰IaŠLà—‘˜1‘ˆBØ×(Ñ(¨¨QÓ/ˆBà
 ‰ ‹×"Ñ" 4Ô(؈    rMcó—t|jt«r |jSt|jttt
j tf«r%|jj||jvSyrW)
ror—r’r“r”r•r–r#r[rp)rSrµs  rKrúzMPLPlot.on_rightsa€ä d×&Ñ&¬Ô -Ø×#Ñ#Ð #ä d×&Ñ&¬´´b·j±jÄ(Ð(KÔ LØ—9‘9×$Ñ$ QÑ'¨4×+;Ñ+;Ð;Ð ;ð MrMcóì—d}|jnt|jt«r    |j|}nCt|jt«r|jj ||«}n |j}d|vxs|j du}|duxs t|« }|s |jr2|r0t|t«r |||d<||fS||t|«z|d<||fS#t$rYŒuwxYw)zž
        Manage style and color based on column number and its label.
        Returns tuple of appropriate style and kwds which "color" may be added.
        Nrh)
rJror”Ú
IndexErrorÚdictr›r™rLrurº)rSrÎrœÚcol_numrarJÚ    has_colorÚ nocolor_styles        rKÚ_apply_style_colorszMPLPlot._apply_style_colorssó€ðˆØ :‰:Ð !ܘ$Ÿ*™*¤dÔ+ðØ ŸJ™J wÑ/‘Eô˜DŸJ™J¬Ô-ØŸ
™
Ÿ™ u¨eÓ4‘àŸ
™
à˜tOÒ@ t§}¡}¸DÐ'@ˆ    Ø ˜ ÒC¬_¸UÓ-CÐ)Cˆ Ù ˜Ÿš©Mܘ&¤$Ô'Ø & u¡ W‘ ðdˆ{Ðð!' w´°V³Ñ'<Ñ =W‘ ؐdˆ{Ðøô"òÙðúsªC'Ã'    C3Ã2C3có¨—|€ |j}|dk(r |j}n|jj|«}t    ||j
|¬«S)Nrh)Ú
num_colorsr™rh)r¤rhrœr›r/r™)rSr¿Ú
color_kwdsrhs    rKÚ _get_colorszMPLPlot._get_colors;sP€ð
Ð ØŸ™ˆJØ ˜Ò  Ø—J‘J‰Eà—I‘I—M‘M *Ó-ˆEÜ"Ø!Ø—]‘]Øô
ð    
rMcóê—|€d|fSd„}t|t«r |||«}||fSt|t«r    ||fSt|t«r:|||«}t    j
|«}t    j ||df«}||fSt|t«r^||j}||jj|«}t    j
|«}t    j ||df«}||fSt|«r3t|«rt    j
t|««}nt    j
|«}|j}t|t«rS|ddk(rKt    j|d«}|j}|dt!|«k7rst#dt!|«›d«‚t|t«rK|j$dk(r<|d|k7s|ddk7s|dt!|«k7rt#d    |›d
t!|«›d«‚t!|«dk(rt    j ||df«}||fSt'|«r&t    j |g|t!|«f«}||fSd |›d }t#|«‚) a“
        Look for error keyword arguments and return the actual errorbar data
        or return the error DataFrame/dict
 
        Error bars can be specified in several ways:
            Series: the user provides a pandas.Series object of the same
                    length as the data
            ndarray: provides a np.ndarray of the same length as the data
            DataFrame/dict: error values are paired with keys matching the
                    key in the plotted DataFrame
            str: the name of the column within the plotted DataFrame
 
        Asymmetrical error bars are also supported, however raw error values
        must be provided in this case. For a ``N`` length :class:`Series`, a
        ``2xN`` array should be provided indicating lower and upper (or left
        and right) errors. For a ``MxN`` :class:`DataFrame`, asymmetrical errors
        should be in a ``Mx2xN`` array.
        Ncó<—|j|j«}|SrW)Úreindexrn)r[Úes  rKÚ match_labelsz.MPLPlot._parse_errorbars.<locals>.match_labelsgs€Ø—    ‘    ˜$Ÿ*™*Ó%ˆA؈HrMrÑréz>Asymmetrical error bars should be provided with the shape (2, ú)rÒz;Asymmetrical error bars should be provided with the shape (z, 2, z    No valid z     detected)ror!r¹r&r•Ú
atleast_2dÚtilerªrÛrpÚdroprrr”ràÚ expand_dimsrºrkrßr)raÚerrr[r¤rÆÚevaluesÚ    err_shaper^s        rKrzMPLPlot._parse_errorbarsMsˆ€ð. ˆ;ؘ:Ð ò    ô
cœ<Ô (Ù˜t SÓ)ˆCð|DˆyÐôy˜œTÔ "Ø ðvDˆyÐôq˜œYÔ 'á˜t SÓ)ˆCÜ—-‘- Ó$ˆCÜ—'‘'˜# ¨˜|Ó,ˆCðhDˆyÐôc˜œSÔ !ؘ3‘i×&Ñ&ˆGؘŸ ™ ×)Ñ)¨#Ó.Ñ/ˆDÜ—-‘- Ó(ˆCÜ—'‘'˜# ¨˜|Ó,ˆCðZDˆyÐôW˜#Õ Ü˜3ÔÜ—m‘m¤D¨£IÓ.‘ô—m‘m CÓ(àŸ    ™    ˆIô˜$¤    Ô*¨y¸©|¸qÒ/@Ü—n‘n S¨!Ó,ØŸI™I    Ø˜Q‘<¤3 t£9Ò,Ü$ð.Ü.1°$«i¨[¸ð;óðô˜D¤,Ô/°C·H±HÀ²Mà˜q‘\ WÒ,Ø! !™ ¨Ò)Ø! !™ ¬¨D«    Ò1ä$ð+Ø+2¨)°5¼¸T»¸ À1ðFóðô 3‹x˜1Š}Ü—g‘g˜c G¨Q <Ó0ðDˆyÐôsŒ^Ü—'‘'ؐ؜#˜d›)Ð$óˆCðDˆyÐð˜e˜W IÐ.ˆCܘS“/Ð !rMcóæ—i}tddg||g«D][\}}|sŒ    |j|}t|ttf«r|||j «vr||}n d}n    ||||}|€ŒW|||<Œ]|Sr—)rZr‘ror!r¹Úkeys)    rSrarnrerfr‘ÚkwÚflagrÍs             rKÚ_get_errorbarszMPLPlot._get_errorbars­s”€ðˆä˜V VÐ,¨t°T¨lÓ;ò     %‰HˆBÚØ—k‘k "‘oä˜c¤L´$Ð#7Ô8ØÐ(¨U°c·h±h³jÑ-@Ø! %™j™à"™ØÐ&¨3¨?ؘe™*Cà‘?Ø!$F˜2’Jð     %ðˆ rMcóä—ttj«td«krddlm}nddlm}|j «Dcgc] }t||«r|j«|‘Œ"c}Scc}w)Nz3.8r)ÚSubplotr<)    r)rzr{Úmatplotlib.axesrÖr=Úget_axesroÚget_subplotspec)rSr ÚKlassrs    rKrRzMPLPlot._get_subplotsÃs]€ä ”3—?‘?Ó #¤g¨e£nÒ 4Þ 8å 5ð—l‘l“nö
àܘ2˜uÔ%¨"×*<Ñ*<Ó*>Ð*Jò ò
ð    
ùò
sÁ%A-có—|j|«}t«}t«}|D]N}|j«j«}|j    |dd«|j    |dd«ŒPt |«t |«fS)NrrÑ)rRrHÚ get_positionÚ
get_pointsÚaddrº)rSr rìÚx_setÚy_setrÚpointss       rKrSzMPLPlot._get_axes_layoutÐs€à×!Ñ! #Ó&ˆÜ“ˆÜ“ˆØò    $ˆBà—_‘_Ó&×1Ñ1Ó3ˆFØ I‰If˜Q‘i ‘lÔ #Ø I‰If˜Q‘i ‘lÕ #ð        $ô
E“
œC ›JÐ'Ð'rM)Úreturnrª)râú
str | None)NNFNFTNNTNNNNNNNNNNNFNFNFN)*rnúIndexLabel | Noneruúbool | Sequence[Sequence[str]]rwú bool | Nonerxr’r€r’ryztuple[float, float] | Noner‰z
bool | strrúHashable | Noner‚rçrƒú
int | Noner—z bool | tuple | list | np.ndarrayršr’r›r’r¡rär\úbool | None | Literal['sym']r]rér^rér_r’r`r’rarçrâÚNone)rwrærâr’©r¬rªr­rérâré)rurår[úSeries | DataFramerdrªrâzbool | list[tuple[int, ...]])r[z.DataFrame | dict[Hashable, Series | DataFrame]râz%Iterator[tuple[Hashable, np.ndarray]]©r[rìrâÚint)rârî©rârê)rr=râr’)rr=rrîrâr=)râr?)râzSequence[Axes])râztuple[Sequence[Axes], Figure])râr(©r r?rârê©rr=rârê©NN)rdr>rƒrèrârê)rarªrnrîrârª)rqr;rarªrârê)rr=)NF©rr=ržú
np.ndarrayrŸr’)T)rr’)r¯rîrârî)rµrî)rœúdict[str, Any]rºrîrarª)Nrh)r¿rèrÀrª)rarªr[rAr¤rîrâztuple[Any, NDFrameT])NNTT)rer’rfr’rârõ)r r?)r r?râztuple[int, int])>Ú__name__Ú
__module__Ú __qualname__Ú__doc__ÚpropertyrrTrr†rYÚ__annotations__r¥rÚ staticmethodrvÚ classmethodrŒrtržrÜrr¤rårïrôrrr rìr
rr&rŸrçrèrérírîrërHrlrorrrêrwr¢r’r•r,r¢r¤r©rûr³rErúr½rÁrrÔrRrSrXrMrKrOrOlsS…ñðØò"óóð"ð€LØ€Là òóðð ƒOð
Ø $Ø38Ø"ØØØ.2Ø Ø!Ø Ø Ø ØØ Ø ØØØ"&Ø"&Ø#Ø8=ØØØØ"Ø$(ð9Y2ð<.3Ø-2Ø/4ØØØ!%ØñIY2ð ð    Y2ð
1ð Y2ð ð Y2ððY2ððY2ð,ðY2ððY2ð( ð)Y2ð* ð+Y2ð,ð-Y2ð.6ð/Y2ð2ð3Y2ð6ð7Y2ð8"ð9Y2ð<+ð=Y2ð>+ð?Y2ð@-ðAY2ðBðCY2ðDðEY2ðFðGY2ðL
óMY2ðv Øò óó ð ðð 
à ð 
ð,ð 
ð
&ò     
óð 
ð ØðgØ0ðgØ8JðgØRUðgà    %ògóó ðgòR%ðN Øð1Ø<ð1à    .ò1óó ð1ó
!ð Ø ò,óó ð,ð ò'ó ð'ð ò
1ó ð
1ð ØòUóó ðUð ò!ó ð!ðF Øò%óó ð%ð Øò%óó ð%ð Øò$óó ð$ðLñ$óð$ð0 Øñóó ðð$ ò ó ð ð ò#Gó ð#GóJ(ð òó ðð òó ðð4òFóðFð ò;3ó ð;3ðz Øà59ð1Øð1Ø(2ð1à     ò1óó ð1ð$ Ø ò)óó ð)ð òó ðð ò)ó ð)ó(.ðT Øò óó ð ð Øñóó ðð
Ðà
ñó ðð8Ø*àINð*Øð*Ø'ð*ØBFò*ó+óð*ò,ð òó ðð& Øó/óó ð/ð ò ó ð ð ò ó ð ð ò<ó ð<ð ðØ*ðØ58ðØADòó ðð<"&Ø!ð
àð
ðó
ð$ Øð\Øð\Ø'ð\Ø25ð\à    ò\óó ð\ð| àFJðØ,0ðØ?Cðà    òó ðð* ò
 
ó ð
 
ð ò    (ó ñ    (rMrOcóR—eZdZdZdZdd„Zed    d„«Zed
d„«Zed d„«Z    y) Ú    PlanePlotzM
    Abstract class for plotting on plane, currently scatter and hexbin.
    Úsinglec ó¦—tj||fi|¤Ž||€t|jdz«‚t    |«r=|j
j j«s|j
j |}t    |«r=|j
j j«s|j
j |}||_||_    y)Nz requires an x and y column)
rOr¥rkrTrr[rpÚ_holds_integerr…rž)rSr[r…ržÚkwargss     rKr¥zPlanePlot.__init__äs£€Ü×ј˜tÑ. vÒ.Ø ˆ9˜˜    Ü˜TŸZ™ZÐ*GÑGÓHÐ HÜ aŒ= §¡×!2Ñ!2×!AÑ!AÔ!CØ—    ‘    ×!Ñ! !Ñ$ˆAÜ aŒ= §¡×!2Ñ!2×!AÑ!AÔ!CØ—    ‘    ×!Ñ! !Ñ$ˆAàˆŒØˆrMcó—yrrXrás  rKrzPlanePlot._get_nseriesðs€àrMcó—|j|j}}|j |jn
t|«}|j |jn
t|«}|j |«|j |«yrW)r…ržrr*r‚Ú
set_xlabelrY)rSrr[r…ržrr‚s       rKrîzPlanePlot._post_plot_logicôs]€àv‰vt—v‘vˆ1ˆØ $§ ¡ Р7—’¼\È!»_ˆØ $§ ¡ Р7—’¼\È!»_ˆð      ‰ fÔØ
 ‰ fÕrMc óJ—|jd}|j|fd|i|¤ŽS)Nr·r)Ú collectionsÚcolorbar)rSrr rœÚimgs     rKÚ_plot_colorbarzPlanePlot._plot_colorbarþs-€ð"n‰n˜RÑ ˆØˆs|‰|˜CÑ/ BÐ/¨$Ñ/Ð/rMNrïrírñ)rr=r r?)
rör÷rørùrr¥rrrîr rXrMrKrÿrÿÝsO„ñð€Ló
ð òó ðð òó ðð ò0ó ñ0rMrÿcóz‡—eZdZed    d„«Z        d
ej ddœ            d ˆfd„Zd d„Zd d„Z    dd„Z
dd„Z ˆxZ S)Ú ScatterPlotcó—y)Nr2rXrRs rKrTzScatterPlot._kinds€àrMN)r    Únormc ó8•—|€d}nt|«r||jvr||}||_||_||_t ‰    ||||fi|¤Žt|«r=|jjj«s|jj|}||_
y)Né) rrpr×r    rÚsuperr¥rr[rÚc)
rSr[r…ržr×rr    rrÚ    __class__s
         €rKr¥zScatterPlot.__init__sŽø€ð ˆ9ð‰AÜ ˜Œ^  T§\¡\Ñ 1ؐQ‘ˆA؈Œà ˆŒ ؈Œ    ä ‰Ñ˜˜q !Ñ. vÒ.Ü aŒ= §¡×!2Ñ!2×!AÑ!AÔ!CØ—    ‘    ×!Ñ! !Ñ$ˆA؈rMc    ó.—|j|j|j|jf\}}}}|jd}t |«xr||jj v}|xr't|j|jt«}|j}    |j|    ||«}
|j|
|«\} } |j|
|«} |jr |j}nd}|j ||j"||j"f|
|| | |j$dœ|j&¤Ž}| r­|r|nd}|j)|||¬«}|r‘t+|j|j,j.«}|j1t3j4d|dz
|««|j6j9|j|j,j.«||j;||«|j=|dd¬«}|j=|dd¬«}t+|«dkDst+|«dkDrSt?|fi|¤Ž}|jA«d|d    <|jB||j"||j"fd
d i|¤Žyy) Nr)rrargrr×r()r raçà?F)rarnrf)rarnreÚecolorÚ    linestyleÚnone)"r…ržrr[rìrrpror!rrhÚ _get_c_valuesÚ_get_norm_and_cmapÚ _get_colorbarr‰rar2rÛr×rœr rºÚcatÚ
categoriesÚ    set_ticksr•ÚlinspacerÚset_yticklabelsrrrÔr¹Ú get_facecolorrœ)rSr r…ržrr[rÚ c_is_columnÚcolor_by_categoricalrhÚc_valuesrrgÚcbrar2Ú
cbar_labelÚcbarÚn_catsÚerrors_xÚerrors_yÚerr_kwdss                      rKrèzScatterPlot._make_plot4sf€ØŸ™ §¡¨¯©°·    ±    Ð9‰ ˆˆ1ˆaØ Y‰Yq‰\ˆä! !“nÒ?¨¨d¯i©i×.?Ñ.?Ð)?ˆ à*ò 
¬zØ I‰Ia‰L× Ñ Ô 0ó0
Ðð—
‘
ˆØ×%Ñ% eÐ-AÀ;ÓOˆØ×,Ñ,¨XÐ7KÓL‰
ˆˆdØ × Ñ  ¨+Ó 6ˆà ;Š;Ø—J‘J‰EàˆEؐ"—*‘*Ø ‰GN‰NØ ‰GN‰Nð    
ðØØØØf‰fñ    
ði‰iñ    
ˆñ Ù)™¨rˆJØ×&Ñ& r¨s¸*Ð&ÓEˆDÙ#ܘTŸY™Y q™\×-Ñ-×8Ñ8Ó9Ø—‘œrŸ{™{¨3°¸± ¸fÓEÔFØ—‘×'Ñ'¨¯    ©    °!© ×(8Ñ(8×(CÑ(CÔDà Ð Ø × .Ñ .ðØô     ð×&Ñ&¨Q°a¸eÐ&ÓDˆØ×&Ñ&¨Q°a¸eÐ&ÓDˆÜ ˆx‹=˜1Ò ¤ H£ °Ò 1ܘHÑ1¨Ñ1ˆHØ!(×!6Ñ!6Ó!8¸Ñ!;ˆHXÑ Ø ˆBK‰K˜˜Q™Ÿ™¨¨Q©¯©Ñ UÀ&Ð UÈHÓ Uð!2rMcó—|j}| | td«‚|€|€|jjd}|S||}|S|r%|j|j
j }|S|r|j|j}|S|}|S)Nz&Specify exactly one of `c` and `color`zpatch.facecolor)rr˜r¢r‡r[rÚcodesrÛ)rSrhr$r#rr%s      rKrzScatterPlot._get_c_valueshsª€Ø F‰FˆØ ˆ=˜UÐ.ÜÐDÓEÐ EØ ˆ9˜˜Ø—x‘x×(Ñ(Ð):Ñ;ˆHðˆðР؈Hðˆñ "Ø—y‘y ‘|×'Ñ'×-Ñ-ˆHð
ˆñ    Ø—y‘y ‘|×*Ñ*ˆHðˆðˆH؈rMcób—|j}|j*tjj    |j«}n1t |t «st|«rtjd}nd}|r¦|¤ddlm    }t|j|jj«}|jt|j «Dcgc]
}||«‘Œ c}«}t#j$d||dz«}|j'||j «}    |    |fS|j(}    |    |fScc}w)NÚGreysr)rÎrÑ)rr™rzÚ    colormapsÚget_cmaprorªrÚ
matplotlibrÎrºr[rrÚListedColormapr“ÚNr•r Ú BoundaryNormr)
rSr%r$rrgrÎr)rµÚboundsrs
          rKrzScatterPlot._get_norm_and_cmapxs÷€Ø F‰FˆØ =‰=Ð $Ü—=‘=×)Ñ)¨$¯-©-Ó8‰Dô˜H¤cÔ*Ô/?ÀÔ/Iä—=‘= Ñ)‰DàˆDá  DÐ$4Ý )䘟™ 1™×)Ñ)×4Ñ4Ó5ˆFØ×(Ñ(¼5ÀÇÁ»=Ö)I°a©$¨q­'Ò)IÓJˆDÜ—[‘[  F¨F°Q©JÓ7ˆFØ×&Ñ& v¨t¯v©vÓ6ˆDð
TˆzÐð—9‘9ˆDؐTˆzÐùò*Jsà D,có€—|jxs|}|j}|tjurt    |«xr|S|SrW)r™r    rrr)rSr%r#Ú plot_colorbarr&s     rKrzScatterPlot._get_colorbar’s<€ðŸ ™ Ò4¨ˆ Ø ]‰]ˆØ ”—‘Ñ Ü# HÓ-Ò?°-Ð ?؈    rM)râzLiteral['scatter']rò)r    zbool | lib.NoDefaultrârêrð)r$r’r#r’)r$r’)r#r’râr’) rör÷rørúrTrrr¥rèrrrÚ __classcell__©rs@rKr r s]ø„Ø òóðð Ø
ð ð*-¯©Ø ñð'ðð
õó82Vóhó ÷4rMr cóJ‡—eZdZedd„«Zdddœd    ˆfd„Zd
d„Zd d„ZˆxZS) Ú
HexBinPlotcó—y)NÚhexbinrXrRs rKrTzHexBinPlot._kindžs€àrMT)r    c ó•—t‰||||fi|¤Žt|«r=|jjj «s|jj|}||_||_t|j|jj««dk(rt|jdz«‚t|j|jj««dk(rt|jdz«‚y)Nrz  requires x column to be numericz  requires y column to be numeric)rr¥rr[rprÚCr    rºr…Ú_get_numeric_datarkrTrž)rSr[r…ržrAr    rrs       €rKr¥zHexBinPlot.__init__¢sÎø€Ü ‰Ñ˜˜q !Ñ. vÒ.Ü aŒ= §¡×!2Ñ!2×!AÑ!AÔ!CØ—    ‘    ×!Ñ! !Ñ$ˆA؈Œà ˆŒ ô ˆty‰y˜Ÿ™Ñ ×2Ñ2Ó4Ó 5¸Ò :ܘTŸZ™ZÐ*LÑLÓMÐ MÜ ˆty‰y˜Ÿ™Ñ ×2Ñ2Ó4Ó 5¸Ò :ܘTŸZ™ZÐ*LÑLÓMÐ Mð ;rMcóÈ—|j|j|j|jf\}}}}|jd}|j
xsd}t jj|«}|j}|€d}    n||j}    |j||j||jf|    |dœ|j¤Ž|r|j||¬«yy)NrÚBuGn)rArg)r )r…ržr[rArìr™rzr1r2r    rÛr?rœr )
rSr r…ržr[rArrgr&r%s
          rKrèzHexBinPlot._make_plot°s€ØŸ™ §¡¨¯    ©    °4·6±6Ð9‰ ˆˆ1ˆdAØ Y‰Yq‰\ˆà}‰}Ò& ˆÜ}‰}×%Ñ% dÓ+ˆØ ]‰]ˆà ˆ9؉Hà˜A‘w—~‘~ˆHàˆ    ‰    $q‘'—.‘. $ q¡'§.¡.ÐU°HÀ4ÑUÈ4Ï9É9ÒUÙ Ø × Ñ  ¨Ð Õ ,ð rMcó—yrWrXrRs rKrêzHexBinPlot._make_legendÁó€Ø rM)râzLiteral['hexbin']rW)r    r’rârêrðrï)    rör÷rørúrTr¥rèrêr:r;s@rKr=r=s-ø„Ø òóðð N¸t÷ Nó-÷" rMr=có—eZdZdZedd„«Zedd„«Zdd„Zedd„«Z    edd„«Z
dd„Z e             d            dd    „«Z eddd
„«Zedd „«Zee dd „««Zee                                 dd „««Zee dd„««Zdd„Zy)ÚLinePlotrcó—y©NrUrXrRs rKrYzLinePlot.orientationÈó€àrMcó—y)Nr¯rXrRs rKrTzLinePlot._kindÌó€àrMc ó—ddlm}tj||fi|¤Ž|jr!|j
j d¬«|_|d|_d|jvr*t|jjd««|_yy)Nr)Ú plot_params©r­Úx_compat) Úpandas.plottingrOrOr¥r`r[ÚfillnarQrœr’rŽ)rSr[rrOs    rKr¥zLinePlot.__init__Ðsp€Ý/ä×ј˜tÑ. vÒ.Ø <Š<ØŸ    ™    ×(Ñ(¨qÐ(Ó1ˆDŒIØ# JÑ/ˆŒ Ø ˜Ÿ™Ñ "Ü  §¡§¡¨zÓ!:Ó;ˆDMð #rMcó\—|j xr|jxr|j«SrW)rQr€Ú_use_dynamic_xrRs rKÚ _is_ts_plotzLinePlot._is_ts_plotÚs(€ð—=‘=РÒM T§^¡^ÒM¸×8KÑ8KÓ8MÐMrMcóL—t|jd«|j«Sr )r4rEr[rRs rKrUzLinePlot._use_dynamic_xßs€ä˜TŸ\™\¨!›_¨d¯i©iÓ8Ð8rMc    óô—|j«rNt|jd«|j«}|j}|j
}|j «}n8|j«}|j}|j|j¬«}|j«}tj|jj«Ž}|j«}t!|«D]    \}    \}
} |j|    «} |j"j%«} |j&|j&| d<|j)|| |    |
«\}} |j+|
|    ¬«}t-| fi|¤Ž} t/|
«}
|j1|
|    ¬«}
|
| d<|| || f||    ||dœ| ¤Ž}|j3|d|
«|j«sŒßt5| «}t7|«\}}| j9||«Œ y)Nrr%rh©rarn©rnra)rJÚ
column_numÚ stacking_idrŸ)rVr2rEr[rnÚ_ts_plotrÙr•r¢rÜÚ_get_stacking_idrlr§r‘rÛrÁr²rœr.rhr½rÔr¹r*rorrr8r9rX)rSr r[r…ÚplotfÚitr\rŸrÎrµraržrrœrJr‘ÚnewlinesrñÚleftÚrights                    rKrèzLinePlot._make_plotãs䀨 × Ñ Ô Ü& t§|¡|°A£¸¿    ¹    ÓBˆDà—
‘
ˆAØ—M‘MˆEØ—‘“‰Bà× Ñ Ó"ˆAð—J‘JˆEð—‘ d§i¡iÓ0ˆBà×+Ñ+Ó-ˆ Ü×&Ñ&¨¯ © ×(:Ñ(:Ó(<Ð=ˆ à×!Ñ!Ó#ˆÜ& r›]ó&    )‰MˆA‰zqØ—‘˜a“ˆBØ—9‘9—>‘>Ó#ˆD؏z‰zÐ%Ø $§
¡
W‘ Ø×2Ñ2ØØØðó ‰KˆE4ð×(Ñ(¨u¸AÐ(Ó>ˆFܘÑ' Ñ'ˆDä  Ó'ˆEØ×*Ñ*¨5¸Ð*Ó:ˆEØ!ˆD‰MáØØØð    ðØØ'Ø'ñ    ðñ    ˆHð × .Ñ .¨x¸©{¸EÔ Bà×ÑÕ!ô& bÓ)Ü& u›o‘ eØ— ‘ ˜D %Ö(ñM&    )rMNc óЗ|dk(r|j||t|««|j||||d«}tj|||fd|i|¤Ž}    |j |||«|    S)NrrarJ)Ú_initialize_stackerrºÚ_get_stacked_valuesrOr¢Ú_update_stacker)
r«rr…ržrJr[r\rœÚy_valuesrñs
          rKr¢zLinePlot._plot"sn€ð ˜Š?Ø × #Ñ # B¨ ´S¸³VÔ <Ø×*Ñ*¨2¨{¸A¸tÀG¹}ÓMˆÜ— ‘ ˜b ! XÑC°UÐC¸dÑCˆØ ×јB  ¨QÔ/؈ rMc óÔ—t|||«\}}t||«t|d«rt|j|«t|d«rt|j|«|j
j ||j|f«|j||jtj|j«fd|i|¤Ž}t||j|j«|S)Nr÷rörJ)r3r0rür÷röÚ
_plot_datarÀrTr¢rnr•rÚrÛr1Úfreq)rSrr…r[rJrœrkrñs        rKr]zLinePlot._ts_plot6sº€ô
$ D¨"¨dÓ3‰
ˆˆdô    b˜$Ôä 2yÔ !Ü ˜"Ÿ*™* dÔ +Ü 2zÔ "Ü ˜"Ÿ+™+ tÔ ,à
 ‰ ×јd D§J¡J°Ð5Ô6à—
‘
˜2˜tŸz™z¬2¯:©:°d·k±kÓ+BÑXÈ%ÐXÐSWÑXˆô    ˜˜BŸG™G T§Z¡ZÔ0؈ rMcóF—|jrt|j«SyrW)r`Úidr[rRs rKr^zLinePlot._get_stacking_idMs€à <Š<ܐd—i‘i“=Ð  àrMcóޗ|€yt|d«si|_t|d«si|_tj|«|j|<tj|«|j|<y)NÚ_stacker_pos_priorÚ_stacker_neg_prior)rürorpr•Úzeros)r«rr\Úns    rKrezLinePlot._initialize_stackerTsc€ð Ð Ø ÜrÐ/Ô0à$&ˆBÔ !ܐrÐ/Ô0à$&ˆBÔ !ä-/¯X©X°a«[ˆ×јkÑ*ä-/¯X©X°a«[ˆ×јkÒ*rMcó —|€|St|d«s|j||t|««|dk\j«r|j||zS|dkj«r|j
||zSt d|›d«‚)NrorzWWhen stacked is True, each column must be either all positive or all negative. Column 'z,' contains both positive and negative values)rürerºÚallrorprk)r«rr\rÛras     rKrfzLinePlot._get_stacked_valuesds®€ð
Р؈MܐrÐ/Ô0à × #Ñ # B¨ ´S¸³[Ô Aà a‰K× Ñ Ô ð×%Ñ% kÑ2Øñð ð˜‰k× Ñ Ô  ð×%Ñ% kÑ2Øñð ô
ð àgÐIð Kó
ð    
rMcó¶—|€y|dk\j«r|j|xx|z cc<y|dkj«r|j|xx|z cc<yyr )rtrorp)r«rr\rÛs    rKrgzLinePlot._update_stacker‚s^€ð Ð Ø Ø a‰K× Ñ Ô à × !Ñ ! +Ó .°&Ñ 8Ô .ؘ‰k× Ñ Ô  à × !Ñ ! +Ó .°&Ñ 8Ô .ð!rMcój‡—ddlm}ˆfd„}|jrW|j«}|Dcgc]
}||«‘Œ }}|jj ||««|j |«|j« xrO‰jjxr |jxr)|j xs|jxr |j}|j«}    |r*|jsd|_t!||j¬«|    |jr|j#|    «yyycc}w)Nr)Ú FixedLocatorcó •—t|«r|j«r t|«}    t‰j|«S#t
$rYywxYw)Nr()rrrîr*rnÚ    Exception)rµr[s €rKÚ    get_labelz,LinePlot._post_plot_logic.<locals>.get_label‘sEø€Ü˜Œ{˜qŸ|™|œ~ܘ“Fð Ü# D§J¡J¨q¡MÓ2Ð2øÜò Ùð ús©AÁ    A Á A é)r„)Úmatplotlib.tickerrwr’Ú
get_xticksrIÚset_major_locatorÚset_xticklabelsrUrnÚ _is_all_datesr€rurwr©r…r„r7r)
rSrr[rwrzr{r…Ú xticklabelsÚ    conditionr¨s
  `       rKrîzLinePlot._post_plot_logicŽs    ø€Ý2ô    ð × "Ò "Ø—]‘]“_ˆFØ17Ö8¨A™9 Q<Ð8ˆKÐ8ð H‰H× &Ñ &¡|°FÓ';Ô <Ø × Ñ ˜{Ô +ð×#Ñ#Ó%Ð %ò GØ—‘×)Ñ)Ò<¨d¯n©nò Gà—]‘]Ð"ÒE t§}¡}Ò'D¸¿¹ð    ð ×)Ñ)Ó+ˆ
á ð—=’=ؐ”Ü ˜r t§x¡xÕ 0à Ð ! d§n¢nØ M‰M˜*Õ %ð'5Ð !ùò59s­D0©rârB)râz-Literal['line', 'area', 'hist', 'kde', 'box']rï)râr’rð)NNN)rr=ržrôrW)rr=r[rD)rârè)rr=rrrîrârê)rr=r\rèrÛrôrârô)rr=r\rèrârêrñ)rör÷rør†rúrYrTr¥rrVrUrèrýr¢r]r^rerfrgrîrXrMrKrHrHÅs4„Ø€Là òóððòóðó<ð òNó ðNð ò9ó ð9ó<)ð~ð ØØðà ðð ò    óðð& óó ðð, òó ðð  Øò 9óó ð 9ð Øð
Øð
Ø$.ð
Ø8Bð
à    ò
óó ð
ð8 Øò9óó ð9ô(&rMrHcóT—eZdZedd„«Zdd„Ze                d                    d    d„«Zd
d„Zy) ÚAreaPlotcó—y)Nr´rXrRs rKrTzAreaPlot._kindºrMrMc óš—|jdd«tj«5tjddt¬«|j d¬«}ddd«t j||fi|¤Ž|js|jjdd    «|js |jr td
«‚y#1swYŒlxYw) Nr`TrvzDowncasting object dtype arrays)r4rrPÚalpharz+Log-y scales are not supported in area plot) Ú
setdefaultrÔr€rÚ FutureWarningrSrHr¥r`rœr]r^rk)rSr[rs   rKr¥zAreaPlot.__init__¾s¬€Ø×ј) TÔ*Ü × $Ñ $Ó &ñ    (Ü × #Ñ #ØØ1Ü&õ ð
—;‘; Q;Ó'ˆD÷     (ô    ×ј$ Ñ/¨Ò/à|Š|à I‰I×  Ñ   ¨#Ô .à 9Š9˜Ÿ š ÜÐJÓKÐ Kð$÷    (ð    (ús §/CÃC
Nc ó°—|dk(r|j||t|««|j||||d«}    |j«}
|
j    d«t j |||    fd|i|
¤Ž} | djd¬«\} }    |€tjt|««} nd|dk\j«r|j|} nA|dkj«r|j|} ntjt|««} d|vr| dj«|d<|j| | |    fi|¤Ž}|j|||«|g}|S)NrrarJF)Úorigrh)rerºrfr.rŽrOr¢Úget_datar•rqrtrorpÚ    get_colorÚ fill_betweenrg)r«rr…ržrJr[r\rŸrœrhÚ    line_kwdsrñÚxdataÚstartÚrectÚress                rKr¢zAreaPlot._plotÑsJ€ð ˜Š?Ø × #Ñ # B¨ ´S¸³VÔ <Ø×*Ñ*¨2¨{¸A¸tÀG¹}ÓMˆð—I‘I“Kˆ    Ø ‰ gÔÜ— ‘ ˜b ! XÑH°UÐH¸iÑHˆð  ™(×+Ñ+°Ð+Ó7‰ˆˆxð Ð Ü—H‘HœS ›VÓ$‰Eؐ1‰f\‰\Œ^à×)Ñ)¨+Ñ6‰Eؐ1‰f\‰\Œ^à×)Ñ)¨+Ñ6‰Eä—H‘HœS ›VÓ$ˆEà ˜$Ñ Ø! !™H×.Ñ.Ó0ˆD‰Màˆr‰˜u e¨XÑ>¸Ñ>ˆØ ×јB  ¨QÔ/ðˆfˆØˆ
rMcól—tj|||«tt|j    «««dkD}|j
€l|si|dk\j «j «r|jdd«y|dkj «j «r|jdd«yyyyr )rHrîrºr”Úget_shared_y_axesr~rtrW)rSrr[Ú is_shared_ys    rKrîzAreaPlot._post_plot_logicÿs”€Ü×!Ñ! $¨¨DÔ1äœ$˜r×3Ñ3Ó5Ó6Ó7¸!Ñ;ˆ à 9‰9Ð ¡[ؘ‘    ‰Ó ×$Ñ$Ô&Ø— ‘ ˜A˜tÕ$ؘ!‘)—‘Ó"×&Ñ&Ô(Ø— ‘ ˜D !Õ$ð)ð&1Ð rM)râzLiteral['area']rï)NNNFrórñ)    rör÷rørúrTr¥rýr¢rîrXrMrKr…r…¹s^„Ø òóðóLð&ð ØØØ!ð+à ð+ð ð    +ðò+óð+ôZ    %rMr…cóæ—eZdZedd„«ZdZedd„«Zdddddddœ    dd    „Zedd
„«Z    ed „«Z
ed „«Z e         d                            dd „«Z ed„«Zdd„Zdd„Z                                                dd„Zy)ÚBarPlotcó—y)Nr°rXrRs rKrTz BarPlot._kind ó€àrMéZcó—yrJrXrRs rKrYzBarPlot.orientationrKrMÚcenterrrF)ÚalignÚbottomrbÚwidthÚpositionrøc óv—t|t«|_||_||_||_t jt|««|_    t|«rt j|«}t|«rt j|«}||_ ||_ ||_tj ||fi|¤ŽyrW)ror&Ú
_is_seriesÚ    bar_widthÚ_alignÚ    _positionr•ÚarangerºÚtick_posrr™r rbrørOr¥)    rSr[rŸr rbr¡r¢rørs             rKr¥zBarPlot.__init__s€ô% T¬9Ó5ˆŒØˆŒØˆŒ Ø!ˆŒÜŸ    ™    ¤# d£)Ó,ˆŒ ä ˜Ô Ü—X‘X˜fÓ%ˆFÜ ˜Ô Ü—8‘8˜D“>ˆD؈Œ ؈Œ    àˆŒä×ј˜tÑ. vÓ.rMcó4—|j|jz
SrW)r©Ú
tickoffsetrRs rKÚax_poszBarPlot.ax_pos5s€à}‰}˜tŸ™Ñ.Ð.rMcó*—|js |jr|j|jzS|jdk(r;|j|j
z }|j|jdz
z|dzzS|j|jzS)NÚedger)r`rur¥r§r¦r¤©rSÚws  rKr«zBarPlot.tickoffset9st€à <Š<˜4Ÿ=š=Ø—>‘> D§N¡NÑ2Ð 2Ø [‰[˜FÒ "Ø—‘ §¡Ñ-ˆAØ—>‘> T§^¡^°cÑ%9Ñ:¸QÀ¹WÑDÐ Dà—>‘> D§N¡NÑ2Ð 2rMcó̗|js |jr|jdk(r|jdz Sy|jdk(r|j|jz }|dzSy)Nr®rÇrr)r`rur¦r¥r¤r¯s  rKÚ
lim_offsetzBarPlot.lim_offsetCsW€à <Š<˜4Ÿ=š=؏{‰{˜fÒ$Ø—~‘~¨Ñ)Ð)àØ [‰[˜FÒ "Ø—‘ §¡Ñ-ˆAؐs‘7ˆNàrMc ó2—|j|||f||dœ|¤ŽS)N)r rø)r°©r«rr…ržr°r’rørœs        rKr¢z BarPlot._plotQs%€ðˆrv‰va˜˜AÐ= e°Ñ=¸Ñ=Ð=rMcó—|jSrW)r rRs rKÚ _start_basezBarPlot._start_base^r¥rMcó0—|j«}t|«}tjt|j««x}}|j
}|jj d«}t|j|¬««D]‹\}\}    }
|j|«} |jj«} |jr|| d<n$t|t«r    ||    | d<n |||z| d<|j|    |¬«} t| fi| ¤Ž} t!|    «}    |j#|    |¬«}    d| vsd| vr'| j%d«€t&j(d    | d<d}|j*r|
d
k\j-«rd
}||j.z}|j0| d <|j2r\|j4d z }|j6| |j8|z|
|j4f||    |j*d œ| ¤Ž}| j;|    «nú|j<r¨|
dkD}tj>|||«|j.z}|j4d z }|j6| |j8|z|
|j4f||    |j*d œ| ¤Ž}|tj>||
d«z}|tj>|d|
«z}nF|j4|z }|j6| |j8|dz|zz|
|f||    |j*d œ| ¤Ž}|jA||    «ŒŽy)Nrr%rhrYrZrfrerz xtick.colorrÑrŸrÇ)r’rarør)!rÁrºr•rqr[r¤rSr²rÜrErœr.r¤ror¹rÔr*ror›rzr‡rørtr¶r¦rur¥r¢r¬r[r`Úwhererr)rSr rÎÚncolorsÚ    pos_priorÚ    neg_priorÚKr[rµraržrrœr‘r’r°r“r s                  rKrèzBarPlot._make_plotbs€Ø×!Ñ!Ó#ˆÜf“+ˆä "§¡¬¨T¯Y©Y«Ó 8Ð8ˆ    IØ L‰Lˆày‰y×Ñ Ó"ˆÜ& t§¡¸D Ó'AÓBóB    <‰MˆA‰zqØ—‘˜a“ˆBØ—9‘9—>‘>Ó#ˆDØŠØ &W’ ܘF¤DÔ)Ø & u¡ W’ à & q¨7¡{Ñ 3W‘ à×(Ñ(¨u¸AÐ(Ó>ˆFܘÑ' Ñ'ˆDä  Ó'ˆEØ×*Ñ*¨5¸Ð*Ó:ˆEà˜4‘ V¨t¡^¸4¿8¹8ÀHÓ;MÐ;UÜ!$§¡¨mÑ!<X‘àˆE؏xŠx˜Q !™VŸL™LœNؘؐD×,Ñ,Ñ,ˆEà ŸK™KˆD‰M؏}Š}Ø—N‘N QÑ&Ø!t—z‘zØØ—K‘K !‘OØØ—N‘Nð        ð
 ØØŸ™ñ    ðñ    ð— ‘ ˜UÕ#Ø—’ؘ1‘uÜŸ™  y°)Ó<¸t×?OÑ?OÑOØ—N‘N QÑ&Ø!t—z‘zØØ—K‘K !‘OØØ—N‘Nð        ð
 ØØŸ™ñ    ðñ    ð&¬¯©°°q¸!Ó(<Ñ<    Ø%¬¯©°°q¸!Ó(<Ñ<‘    à—N‘N QÑ&Ø!t—z‘zØØ—K‘K 1 s¡7¨a¡-Ñ/ØØð        ð
 ØØŸ™ñ    ðñ    ð × .Ñ .¨t°UÖ ;ñEB    <rMcó®—|jr#|jDcgc] }t|«‘Œ}}n.t|jd«Dcgc] }t|«‘Œ}}|j
ddz
|j z}|j
ddz|jz|j z}|j||j«|||«ycc}wcc}w)NrgÐ?r·)
r€rnr*r“ràr¬r²r¥Ú_decorate_ticksr©)rSrr[ÚkeyÚ    str_indexÚs_edgeÚe_edges       rKrîzBarPlot._post_plot_logic®s±€Ø >Š>Ø6:·j±jÖA¨sœ cÕ*ÐAˆIÑAä6;¸D¿J¹JÀq¹MÓ6JÖK¨sœ cÕ*ÐKˆIÐKà—‘˜Q‘ $Ñ&¨¯©Ñ8ˆØ—‘˜R‘ 4Ñ'¨$¯.©.Ñ8¸4¿?¹?ÑJˆà ×јR ×!5Ñ!5Ó!7¸ÀFÈFÕSùòBùâKs ›C Á
Ccó:—|j||f«|j/|jtj|j««n,|j|j
«|j |«||jr|j|«yyyrW)    rXr{rVr•r™r©rr€r©rSrr)Ú
ticklabelsÚ
start_edgeÚend_edges      rKr¾zBarPlot._decorate_ticks¹sv€ð      ‰ Z Ð*Ô+à ;‰;Ð "Ø M‰Mœ"Ÿ(™( 4§;¡;Ó/Õ 0à M‰M˜$Ÿ-™-Ô (Ø × Ñ ˜zÔ *à Ð  §¢Ø M‰M˜$Õ ð!/Ð rMN)râzLiteral['bar', 'barh']rƒrï)rârô©rF©rr=ržrôr’zint | npt.NDArray[np.intp]rør’rðrñ© rr=r)rãrÅz    list[str]rÆr rÇr rârê)rör÷rørúrTr†rYr¥rr¬r«r²rýr¢r¶rèrîr¾rXrMrKr™r™ s.„Ø òóðð€Là òóððØØ ØØØ ñ/ð
ó/ð>ò/óð/ðñ3óð3ðñ
óð
ðð-.Øð
>à ð
>ð ð    
>ð *ð
>ðò
>óð
>ðñóðóJ<óX    Tð à ð ðð ðð     ð
ð  ð ð  ð
ô rMr™có—eZdZed    d„«ZdZed
d„«Zed„«Ze        d                             d d„«Z    d„Z
                                                d d„Z y)ÚBarhPlotcó—y)Nr±rXrRs rKrTzBarhPlot._kindÎrMrMrcó—y)NrGrXrRs rKrYzBarhPlot.orientationÔs€àrMcó—|jSrW)rbrRs rKr¶zBarhPlot._start_baseØs €ày‰yÐrMc ó2—|j|||f||dœ|¤ŽS)N)rbrø)r±r´s        rKr¢zBarhPlot._plotÝs%€ðˆrw‰wq˜!˜QÐ< U°Ñ<°tÑ<Ð<rMcó—|jSrW)r‚rRs rKr¤zBarhPlot._get_custom_index_nameês €Ø{‰{ÐrMcóö—|j||f«|j|j«|j|«||jr|j |«|j |j«yrW)rWrUr©r!r€rYrrrÄs      rKr¾zBarhPlot._decorate_ticksís]€ð      ‰ Z Ð*Ô+Ø
 ‰ d—m‘mÔ$Ø
×ј:Ô&Ø Ð  §¢Ø M‰M˜$Ô ð      ‰ d—k‘kÕ"rMN)râzLiteral['barh'])râzLiteral['horizontal']rÈrÉrÊ) rör÷rørúrTr†rYr¶rýr¢r¤r¾rXrMrKrÌrÌÍsDŽØ òóðð€Là òóððñóððð-.Øð
=à ð
=ð ð    
=ð *ð
=ðò
=óð
=òð#à ð#ðð#ðð    #ð
ð #ð ð #ð
ô#rMrÌcón‡—eZdZedd„«ZdZd    d
d„Ze                        d ˆfd„ «Zd
d„Z    d d„Z
d d„Z ˆxZ S)ÚPiePlotcó—y)NrµrXrRs rKrTz PiePlot._kindr›rMrGc ó̗|jd¬«}|dkj«j«rt|j›d«‚t    j
||fd|i|¤Žy)NrrPz# plot doesn't allow negative valuesrd)rSr¼rkrTrOr¥)rSr[rdrs    rKr¥zPiePlot.__init__sZ€Ø{‰{ ˆ{Ó#ˆØ 1‰H>‰>Ó × Ñ Ô !Ü §
¡
˜|Ð+NÐOÓPÐ PÜ×ј˜tÑ9¨$Ð9°&Ó9rMc󀕗t‰|||¬«|dur(tjd|›dtt «¬«y)N)r¬r­FzPiePlot ignores the 'z    ' keywordrÏ)rrŒrÔrÕr‚r)r«r¬r­rs   €rKrŒzPiePlot._validate_log_kwd sEø€ô     ‰Ñ! c°Ð!Ô7Ø ˜Ñ Ü M‰MØ'¨ u¨IÐ6ÜÜ+Ó-õ ð
rMcó—yrWrX)rSrhr™s   rKržzPiePlot._validate_color_argsrZrMc    óŽ—|jt|j«d¬«}|jj    d|«t |j |j¬««D]O\}\}}|j|«}|t|«}|j|«|jj«}d„}|jjD    cgc] }    t|    «‘Œ}
}    |jd|
«} | &t| |«D  cgc]\} } || | «‘Œ}} } nd}|j|fd|i|¤Ž}|jdd«|\}}}n|\}}g}|j %||zD]}|j#|j «Œ| | n|
}t||«D]\}}|j%||«ŒŒRycc}    wcc} } w)NrÎ)r¿rÀr%có—|dk(ry|S)Nrr(rX)rar­s  rKÚ blank_labelerz)PiePlot._make_plot.<locals>.blank_labeler,s€Ø˜A’:Øà LrMreÚautopct)rÁrºr[rœr‰r²rÜrEr*rYr.rnrŽrZrµr›rƒrcrr)rSr rÎrµraržrrœrÛÚvÚidxrerbr­ÚblabelsÚresultsÚpatchesÚtextsÚ    autotextsÚtÚ    leglabelsÚ_patchÚ    _leglabels                       rKrèzPiePlot._make_plot s»€Ø×!Ñ!¬S°·±«^ÈÐ!ÓQˆØ     ‰    ×јX vÔ.ä& t§¡¸D¿I¹I Ó'FÓGó&    F‰MˆA‰zqØ—‘˜a“ˆBØÐ Ü$ UÓ+Ø— ‘ ˜eÔ$à—9‘9—>‘>Ó#ˆDò !ð -1¯I©I¯O©OÖ< q”< •?Ð<ˆCÐ<Ø—X‘X˜h¨Ó,ˆFðÐ!ÜILÈVÐUVË×X¹+¸$À™=¨¨uÕ5ÐXÒXàØb—f‘f˜QÑ7 wÐ7°$Ñ7ˆGàx‰x˜     4Ó(Ð4Ø,3Ñ)˜¡    à!(‘˜Ø    à}‰}Ð(Ø Ñ*ò2AØ—N‘N 4§=¡=Õ1ð2ð#)Ð"4™¸#ˆIÜ%(¨°)Ó%<ò FÑ!˜    Ø×2Ñ2°6¸9ÕEò FñK&    Fùò=ùó Ys ÃF<Ä Gcó—yrWrXrLs   rKrîzPiePlot._post_plot_logicLrFrM)râzLiteral['pie']rWrïrërðrñ) rör÷rørúrTrr¥rýrŒržrèrîr:r;s@rKrÔrÔsbø„Ø òóðð €Lô:ð ð à ð ð,ð ð
&ô     óð óó*F÷X rMrÔ)rJrªrâr’)oÚ
__future__rÚabcrrÚcollections.abcrrrr    Útypingr
r r r rrÔr3rzÚnumpyr•Ú pandas._libsrÚ pandas.errorsrÚpandas.util._decoratorsrÚpandas.util._exceptionsrÚpandas.core.dtypes.commonrrrrrrrrrrrÚpandas.core.dtypes.dtypesrr Úpandas.core.dtypes.genericr!r"r#r$r%r&Úpandas.core.dtypes.missingr'Úpandas.core.commonÚcoreÚcommonrlÚpandas.core.framer(Úpandas.util.versionr)Úpandas.io.formats.printingr*Úpandas.plotting._matplotlibr+Ú%pandas.plotting._matplotlib.converterr,Ú#pandas.plotting._matplotlib.groupbyr-Ú pandas.plotting._matplotlib.miscr.Ú!pandas.plotting._matplotlib.styler/Ú&pandas.plotting._matplotlib.timeseriesr0r1r2r3r4Ú!pandas.plotting._matplotlib.toolsr5r6r7r8r9r:Úmatplotlib.artistr;r×r=Úmatplotlib.axisr>Úmatplotlib.figurer?Úpandas._typingr@rArBrCÚpandasrDrLrOrÿr r=rHr…r™rÌrÔrXrMrKú<module>rs9ðÝ"÷÷ó÷ õóãÛåÝ-Ý2Ý4÷ ÷ ÷ ñ ÷÷÷õ,ç Ð Ý'Ý'å3Ý-ÝWÝHÝCÝA÷õ÷÷ñÝ(Ý$Ý$Ý(÷óõó2ôn(ˆcôn(ôb#30˜ô30ôlG)ôGôT% ô% ôPq&ˆwôq&ôhO%ˆxôO%ôd ˆgô ôD0#ˆwô0#ôfM ˆgõM rM