From fae251176d255a01a9031e9819c76e3c77fc428a Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Tue, 6 Mar 2018 20:54:56 -0500 Subject: [PATCH 01/15] legend: calls handler.scale_dimensions legend_handler: added scale_dimensions method and helpers --- lib/matplotlib/legend.py | 11 ++++++-- lib/matplotlib/legend_handler.py | 48 ++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index d96327a9de62..78ce533d5d0c 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -917,6 +917,7 @@ def _init_legend_box(self, handles, labels, markerfirst=True): descent = 0.35 * self._approx_text_height() * (self.handleheight - 0.7) # 0.35 and 0.7 are just heuristic numbers and may need to be improved. height = self._approx_text_height() * self.handleheight - descent + width = self.handlelength * fontsize # each handle needs to be drawn inside a box of (x, y, w, h) = # (0, -descent, width, height). And their coordinates should # be given in the display coordinates. @@ -929,6 +930,7 @@ def _init_legend_box(self, handles, labels, markerfirst=True): for orig_handle, lab in zip(handles, labels): handler = self.get_legend_handler(legend_handler_map, orig_handle) + #print(lab,"\norig handle ",type(orig_handle), "\nhandler: ", type(handler))#my change here if handler is None: warnings.warn( "Legend does not support {!r} instances.\nA proxy artist " @@ -944,8 +946,12 @@ def _init_legend_box(self, handles, labels, markerfirst=True): textbox = TextArea(lab, textprops=label_prop, multilinebaseline=True, minimumdescent=True) - handlebox = DrawingArea(width=self.handlelength * fontsize, - height=height, + + da_width, da_height = handler.scale_dimensions(self, + width, height, + orig_handle) + handlebox = DrawingArea(width=da_width, + height=da_height, xdescent=0., ydescent=descent) text_list.append(textbox._text) @@ -953,6 +959,7 @@ def _init_legend_box(self, handles, labels, markerfirst=True): # original artist/handle. handle_list.append(handler.legend_artist(self, orig_handle, fontsize, handlebox)) + #print("new handle: ", type(handle_list[-1]),"\n")#my change here handles_and_labels.append((handlebox, textbox)) if handles_and_labels: diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index 0968a5c4b99b..dd0bc1d26569 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -88,6 +88,16 @@ def adjust_drawing_area(self, legend, orig_handle, height = height - self._ypad * fontsize return xdescent, ydescent, width, height + def scale_dimensions(self, legend, width, height, orig_handle): + return (max(width, self.handle_width(legend, orig_handle)), + max(height, self.handle_height(legend, orig_handle))) + + def handle_width(self, legend, orig_handle): + return -1 + + def handle_height(self, legend, orig_handle): + return -1 + def legend_artist(self, legend, orig_handle, fontsize, handlebox): """ @@ -228,6 +238,26 @@ def __init__(self, marker_pad=0.3, numpoints=None, **kw): HandlerNpoints.__init__(self, marker_pad=marker_pad, numpoints=numpoints, **kw) + def handle_width(self, legend, orig_handle): + if isinstance(orig_handle, Line2D): + marker = orig_handle.get_marker() + marker_size = orig_handle.get_markersize() + if marker and marker_size > 0: + if legend.markerscale != 1: + marker_size = marker_size * legend.markerscale + return marker_size + return -1 + + def handle_height(self, legend, orig_handle): + if isinstance(orig_handle, Line2D): + marker = orig_handle.get_marker() + marker_size = orig_handle.get_markersize() + if marker and marker_size > 0: + if legend.markerscale != 1: + marker_size = marker_size * legend.markerscale + return marker_size + return -1 + def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans): @@ -656,6 +686,24 @@ def __init__(self, ndivide=1, pad=None, **kwargs): self._pad = pad HandlerBase.__init__(self, **kwargs) + def handle_width(self, legend, orig_handle): + handler_map = legend.get_legend_handler_map() + largest_width = -1 + for handle1 in orig_handle: + handler = legend.get_legend_handler(handler_map, handle1) + largest_width = max(largest_width, + handler.handle_width(legend, handle1)) + return largest_width + + def handle_height(self, legend, orig_handle): + handler_map = legend.get_legend_handler_map() + largest_height = -1 + for handle1 in orig_handle: + handler = legend.get_legend_handler(handler_map, handle1) + largest_height = max(largest_height, + handler.handle_height(legend, handle1)) + return largest_height + def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans): From 36ddd26a8c91adf2ea9f7b0f321e61bed0f5dd90 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Wed, 7 Mar 2018 22:47:03 -0500 Subject: [PATCH 02/15] added test for legend scaling to fit markers --- lib/matplotlib/legend.py | 2 -- .../legend_large_marker_in_tuple.png | Bin 0 -> 17887 bytes .../test_legend/legend_large_markers.png | Bin 0 -> 21271 bytes .../test_legend/legend_large_markerscale.png | Bin 0 -> 18646 bytes lib/matplotlib/tests/test_legend.py | 27 ++++++++++++++++++ 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_large_markerscale.png diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 78ce533d5d0c..9fe19c01822b 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -930,7 +930,6 @@ def _init_legend_box(self, handles, labels, markerfirst=True): for orig_handle, lab in zip(handles, labels): handler = self.get_legend_handler(legend_handler_map, orig_handle) - #print(lab,"\norig handle ",type(orig_handle), "\nhandler: ", type(handler))#my change here if handler is None: warnings.warn( "Legend does not support {!r} instances.\nA proxy artist " @@ -959,7 +958,6 @@ def _init_legend_box(self, handles, labels, markerfirst=True): # original artist/handle. handle_list.append(handler.legend_artist(self, orig_handle, fontsize, handlebox)) - #print("new handle: ", type(handle_list[-1]),"\n")#my change here handles_and_labels.append((handlebox, textbox)) if handles_and_labels: diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png new file mode 100644 index 0000000000000000000000000000000000000000..0c1e5f1d6b503f3a085757da2543a7fc4742e8e8 GIT binary patch literal 17887 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 Y_V^Vpkz8sn*hd&%S^Zqb+3UCe7eLanCIA2c literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png new file mode 100644 index 0000000000000000000000000000000000000000..df333e39937925cc7ef897e5a5d7dd789acca37c GIT binary patch literal 21271 zcmeIa2T+x3wk?V|%hoMhMF9h-WF?4XGcJ%I5+tigmYg%{Hlm=5Bp^Y_i>ML=1azY! zARrluk~0XB;~gJ%-#+)ezUQ9vPSv~hs(M#-gRFo3;R|z)ImVd(eFZtGP3sxg)6vmw zqMSReNJqC~4;|g|OKVr-FF|%UE%0Nd^+}4-TKwm-_S!xCd!5BOHETLL`YYsr%VH&C zjPOTAn=_YeE}HAx*k7^Iqcgo?V{zTw=DN|D ze2nLsp50+i1N|#{e1b=gaP2X)v9S>0<^9JudCaX0c+*qI+vw=_&{0mGP;z)S(B!PC zth}%|BJ^PW?Z(rmPn}Ts{m5`o)ETb`zwxvqX@8dUT$JmxPe^_Fvf`~?siA9{<*3Mm z)sF1E&;Kyq9IdPF_1Io^)yN%7ACscinc4i-xqV(%3XN-yC3m;C=HE3*PMb8iB_U>B zQ*R>bi~rW*!RR(B6x6IDzof9N{Ehs)v)6zJ?(S%9eLg#!r?X=9Mul6eH_`f3Fe@I6 zAD>4?Mt-O{vx5z1ZOXP+J$v>}CilL5C-d*pXBf}nzC)K{AvR?WYMH)o8xZ{I%O zXV19k>FKR!Ptl7m-G5r*|Cq!a6sR_nP4@A4iU*G#`LPO`HC}pcP*$^n_pL>~ zNn})%QA4`v=;UO;>(|zPEh}&fFlTIDO4tn;7j>HqtN(6R}N7Ha2N~o2inh9+hR= zFHL>%;ziXfJsH=j*1JL*_e8yBfAZwX`t|E+70$=U1lf+Pd#Rp zmzTHgtvGXcGgDTpt#p7EmR6ih0FSbYB#l={NGP|~?$6;2*Vb86ohi2l7XRWF5$2N_ ziWU|rUQD7YN%L41w2Lub_35UZ6yuiM9M;13@1JY7;O>j$gqX-+vTixfRrLAu*N>jt zi~qd6Y{lxHfp4!LczW_@bar=ha&Smv1yHlIvm^V9V{hKNmF7HY#;|>R@T|U`9{bUw zDomnw0z+rX5;OiZwEUcd!<#?2)g!qz($7(^UcH)XSiX;2J@p)>g&O%%w}9sOv#Y46 zh|hZ$zy8CwZ{G@B{jhehDO*)?VJbq~p>>s3mJP+{fGmggBP^c&5BGm}>WvDp8SA;g zbj;%Tsk@t%_4T6W59@EBMSB-|)TPCnl!Z+S*EuL{!#j?3K=1*eGRV zlls?Re^te+@=|K;->Ih>KAD*u)`=djl$T6gwc!uLwh#B!UtYcKIQL4gSm5$I4^a!% z*tnCYPMK;g-}qs&A@|38IaE@EfZ6H}JK6vUcaA-V}`}^XIZMGW$K~=oFAij1M358>QMM;HFb zevfx%^Hc5Kea$)9(Q+Zi<4?!?YvY|Khi2M5d51KwU|iF7{0%PbHr1k2@Ok^=uMLcR z*X}VMy>8eK*hOc|x_s>qosS~t9<>gg9|KRTE>vJluO^6MR zjAX5jyC}76*)p0=UT$?ekM`R`=H}*(&dveC`h0;T_`Z0tZ`I0`jbkPoa4&28FE67W zHE&Mv=homjd{_a?c64N<{KXm1qVWy%^Z^JU$Tmex&WrPt)o(0ySFKsYxo6LDod1EB zSB(sB4y(PreTcYo4NV*>sSXm-o?bVMUDYV_f6Y!<`qS-I3Be`uj~rvRGVx+-PiS8t)9y@iz)PY8q6Z zYP28ej$HlFp>t+tW;5+9i?NN3jaJ=`J0vo?UE++$GVHYbJAbRo!PZYydwq7ll$X-EbN6_(vLc18 zy9~#A$}#$1Ig{UB9Wue-`T4Q=6e@M?u8fwgL@KSODRbg+WF#ac>eEaD?rhxof{Y?3 zr_7l%XBcX%`l{H)7pB^g*UEt}w(Z`XU{agZ`z4USKIO`-B+bkhh`8sde0+RkpZ9zB zw0-n+8u_?=9E*z+%WiSfeKF?En`3%vKGPdR za>K%pyON)4YgK!DduQf;mZjPBDv}6QnmE^OG&Qx(W>kZRknQXQ9HCWUzTXziX9XDM&y>NPAb z;X=(0`Hd4*7vTtxSx-N6#BSx8qU?rvCGwyl4yl6`jU!fX8!z6|=Ee5bJvRdinO zTbwR)@964Mi5^U=)vhE7fB>k)h55en2&qiV&6_vl6qQ=`P0G>pyzbMUa$ypQn7N)Z z_l4J)u2r!YoQ5*Hw{6+-eABL@hMynrRkowYE}r==^)SUbO2*x-u%$(3|JjEMa&lhj z*S}d+j$F8Kf#cAjudx>*zO+VE^^`|+_Vyataz~YgL`Fxei!BtZ-4HaX`CM2?!J{9l zEWlt!NO`Bv1Tjq8P8}L=v@WAi?S`98N2ahqif_~V6h_{=w^q=+`R)1doPtIbtdxpR zk9L{ITtmEnbY#Wy?An*QQrOi2CV7hsvt;U+L~PDIfBsx(xBJ|bB}FlSN2`d*+R92% zLE&-k{DellvEyjrK|#y5(-;Xk9oKO`0)@thnlwU0Y&m|HAnVF=J8xg^?9l5S7ETib zM%Cj9BR|U|O=`veCEOU(4_ zrzj$CN=r+#7QQ_{h$Rc$f`y<>7J_V$z{|R!_V)c0AcCyksWA5iHEL0bn=ip-)oH25 z)zU34KOZ%_&6fWf$U{0v3%`- zwz_)I$B7C(1s)zAA*SKh*1f$mDsTK*+1Qk6p`qf=90v}Z4Gavd&vDL3H*JW z30izV?m9P8KsG#UFD4%And~G~>?elN*h!Zo2G{s{j zg@x?3DjdK$)Uj$+9X}&Uhacfc2%1Umy`C%F=g)uYEDjj=cAsn4&$#*o5uJp&Ft-^B zg5c{qM5w7dI%{xaKVPogV3&-Wb;4G)nI6>>pZk%YWz$R5|MK)X@O%!Ich{t9<2_GL z&p)^>g`?geQ|~nK&7eAx^7~+Ojz)}Jh$1Pw49b|}n@vV08qE9g5GXqyi`ew+Ie743 zh=i*;Dhz+tO)L_PjrJ9h6!mPo!~^o735bp26Lq@Mva;1Wi!-X3Sy}3uTPKi`jXR6{ z7=^7OOGCxu0snh(!XQ!mq@nC#2~;pC=NC`hT5Z()){#-%DHX$7ounm7u7ZM633Vo? zi^L}?ib`YLR*MR%jg z`N#V;3|qIpsMT?AnoA#Ay@}BfwU<+WVn%{ULCTeUgtX|L{Q6Hb3O21}DGRQK8|_QXXs!VKX47)#(M7!}EhEFZ{W!Bz&t6odI=>&36KJ^`5fKsUzTk+6 zcz%9n{B>XdPZ@H7h51=Qw>bw~Uaq{nyi3>1%WM6*buXv1w_tWfkNGzC+^ z(zB=l4`H$`@+Wna&RSZ&oQ|2r21XK2G1gR6qyo*v;#7r5c0fiXPJGN|V`CGs>bOVZ zo`(lrnqm1#lBoy;=niw&=2S^IBy<3ig+h#qC&$SZT1zixW@d^wjz%I&ZQHg@sWsto znw7P+Edp+5R~Jc;Zf%a&gdbiSC|Bz;LUQ&o09ma(R^v@{Fbz}zUI z@Y<^>`^)cduF7&4c@gS5p%$NimlcWSJn+P8TJo)1w{WAE$1|h)%dU!zeLbZzX>VzH zA;YYR!*-KNS@Cu3xQUNR%qQ*t^OQr^_;lU`LQub-s`dqB(D)ZFO1hY7f*_*L2fjee zFkYCOW)!iB{p7{OxqW-UE(wcG;JM5Pj8}gsE0afX^k*Hcdl{jqyPa1%!D+m&H)pb$ zKZ8{0InI+c6;U#Rj-wq`y3LN=On?D>2q%Jh3Y*h>!otExh-!8oj(hXwQpNbYhCFxo zl0bf`$!6!|N1PznVwndxJQ}^kohM>1#>jOAl=}5GWF$w+21kGRaC&-nHn<^gc1V=_ zQp#~a?VQ%)HU(#!p++@=9t*E28XMC9h&qsx3=9l{s}PxXg&ebdAswoViY!*zE^TGM z9V;uV@46jP(hXa;ZvA44YMexcvyT{UrD{qdW{kgv-*9nttp+I&e4Cy^uro^Uc-%mJ z0wG9co-TWN5){Px4I8-4BGj{V%XnMPiksAM>0P^K*!3ka!zRbF{gdBpp{=1|?8l4? zs3O0YUdnMwQ%Tm=iXK#HzH$52+C3_Vn)EYbV`Cd%R-{)*fTgKLW=(S%H;zyLJ?+|1 zW9IdKT1 zqs6?%<>eQ23%sgh!rW*NA8xcx*#U-uAdp8pj+`Wf33wF&(|Q5IFckZ9^M|!mq{kqI zQ0|SBP=<4{hH|%Nu^oaAd^9j%xf92=1Q3$K|rqYiU%aB7vME%N@D}B}R0g?Tp zm%(b>6AB@Zr}8SBjv5%Kb|vid=W}Pyp7l2wu1O4bn;Ve|5pz^@baXUsNKaHAc5)ba zSy05)O)~`?8vFD?XslI7(ib~4u^6lCxZo%LJ$@bEzlVp1@39?f{1(j{6fd`#MIs@u zY&M$!g{7KLp=8T(iw6H>^`sYfJyTt(tuz8qihCG)(cNrF9}iBfSfMypYWQ#dNJY8C z6~h&m2(p~vmqyN3MEz(9$_EDtGLKE=&(Imn{SMOZ5GDEK^pkJxY z-SuuV)t^m$vQuQ2DmIr#-$S~a8vf6oC2+E-E-dPodMP?tW+^HvURU3aZ_;>|uQmHt zKW^eT5Ud%^{ZZ&lSmNTBvkZ8;@T~nF-~G>+-BY@7{6b**Umho2UoHH;OL^&}xOWXI z>XOK3tcAU*Yo0~o7d-=mhDaWAr{=g*s;tIQ_Q6mA&w`3!O09o#`VLJb6FTGNxM1Nc z!QyM{1=Pg+w?B<>Pg;n1zjVO^dpyD`&L8k;<1LWk5$gHAFN7kp->1;(IPS({ejh%} zZ5~PEbKx_qKbU{;l;}cQe)t2NQ{m!o#}$k`_iyJEIy@QeYPG^D?U>ce6HDie#yJ%q zJa}N!QMIKo;-*(YME-g?9JS{kVIlukV|(&mv!@u`&6QY|6@b|DQj8D17PKA=@K(qPe`eLQq3h ziBiitY-m0oHL0`hHT&72p`rAp^^kF6=Wn9lu`UbEyRBzpqFFbU#&v{l)d*1D zdsk-jsOa|?LC>0=1?I_ytlfB8rDgiZ2hNqvI&%!^Sgxn6zmWgtj-qYJ9yUe%vOaV7 z3zn;HdtAt{>|6Pp=*7W+YcD&XCxxr%uJdQ2CCR+HWCdidFneUh)dE@xmCIiflUBEB z`MnU%*Q_S-oBV$r|1K$I<%Xjg)Q?n7oNG3JBhDwYv#9O4F+5m$vpg;jfn zaajfH-;P_HDpuuIRrgHAXX>5;+&XD*rOVb~D1&a%-P~0_Q=$^*$PkvAxh;o3>w!F; z#3Se?-EvPP2;WX$<#G2@edoT(eFH&$ogr)oZbxw0vXy_FNqD3n?MZW}Kw*1n?=pT#z>-E-)mu&`RMbe?svfT*<5 zM5s^=aUpII0OuMc6A;eAT*& z7cbg^){2T!9-R1q%TC;+yUF+J^=m(0A68-IuSY1x3wqYvuC{SUPn#*A3{O2`72*F- zYhMd@uA<_q_K?5rZdK)8zlnBlNgDESkccgun|P^>x%QRjJd0;7bqacWV?ueX9exb2<{aujHcsi= zpE2AN8GJr6vc)Hr*Ci9RsdQ!`*6pVUtC3?cTlHEHe~E3(0Cg zg~k<;_lHoiYlz67IB|nVCzlj7U<*!@TH9Fj!i6VWfB)StARxwWu)e7#2gB-nb@fVp zo#83}B;4Y_*Ut>~506cpGB56yVPTIS7}*%Mad4{E zt07@-!nFCV8i*OC%a_9mc5QEuIOF+;U;lPyW**RaXHNUNKWT%AmJF(b6O|#@zV&O@ zDu9>QcIstAzSo$an0)$l2dX_;W@cuBAVFew_Vv-2#hrSfL{TI6p1RXR%1PEoERxy? zN?ke>N-fK~`;Q(~1D}u?MG+N;#1FRd0JD|T0>_qy zDi|DA=L~j1<9hw$m(vm2tyWkkFFrqQB{CGL5}+j@}$)UBfQ4M-};@|Nb(0rE)DL?d#VQY7*2Up6r+6U}ZfGnx*2Iu(g2G zm?1d-9$@4nlY)Wg!EjIumFxn+KUNBWCP@Rifz3hn_V&h9MByo8^@{y*l;VX8A4NTZ zt)#sr7v5-UY6?KR0^isVJS1Y>_3-HRx^Pa_q*#nI$OmN{I5yoKX7bKsS>LzUG1I#V zqKRCb>y{L8ok`Vp9ux#c8w+SAf@*vLBv{`_0ZVOjj&pU6v;EIEb8{}>1&vTFh**60 zAYutvr1`N*`9BP9VR4wPTDFp!#G4^()pxH-rJ{^FX=W~7J1ktHE-2&WrTnut5(VGP zm0EfylX{JrYyAhM9gm$E_1!!yoB(pTI?-g_`82HpM9BF2H7q@kgqja$h>urY1jerT zbKUPyU86Bk%@%X=lJk+E3X6V8ru>q-_#J*+PP_h1vAw`MBg;QF_7J2f6BHGI&79WP zXU2LtczBM6iSFNj3Zzk{8%kMYaCDue3^=8#wqsOdMVvvHtBPYqZQ$R%0Hm@=P==O*gFO(D% z!Y@Re^>aS#4jOoLY%Dd)zasEXRh5!wL4VcDg|Gy0As@SsGCO=4NTzJaVfy9ll4E-o&taeu8zabK7=pk(!?f2c98rupSgckRlVpJ;e+ z|9&|Jl8us^n;Rrxq!`$Jf#a1$>q(60S&(={u7-^L<%G%fXlIs1>rFygbGyE_3qaEI z&^SSNgVks#A@gXq9k~TY7dLM1l2K1->3|cNZ{9T8yuEw(E^99Yjz7EuhNSfp{|{_l z;*Z?`>`p&RggOz-Slp)G?~ayER8ONR3IYr$G5BA8KScC()P0@x?QLzWl);9Kyxu7Y z<}y?}RFXrNz$JPie971%zL|V~cZ1MlCG?(n`0lRuDE{sK{ue@ot z{QSd*4;nNeitl#+Wm@hG1i-W`f0R6)gHgqAutQ2r!A??HLqJbyxmw5>}mN=GHiA!PP2m< zwo^Z@5ZMH*^J6SC!k>S8Z6HIvL(gJ1)PU+vSXkHyJOx}BN6Ty;BA7QfH)lk*m`hf7M=fu8@j67{n7Fs?1vzv%ykPu7z7-{?qpii#fUc6<-!oTO8J6QhU zmiY^6zW~Fb+T6?UmutOsxKJiBdp$~GO6V8+lO3h*2Ce_Zublg4(3-5@Rm;~Zta=d< zK?DRMs^CN1QVn1iLXQYGj3E+KIuDAgaP>VNbjt5Q*T~7qISuDbelh0;Nu&hAN6?^j zca!sQ&e0^8o5G#Qap7=|kPL!?3;0l3L17OI3(L>o0$kIAY1zuylUN#$larGZi?RM< z(;c?##ZS8b*zxpGYv?8e3rjL2HB^J~@?jE?0#ls^FubXbKlP!$$AO^3diROY{l=>c z79w|UREA01NeMebxxXe6b{Gy`-eis(Z}62$z0*MDd9x@wH0>CUx3#yE3<%ccX#;f0 zgw1=fJ<1_sF>KpLEEn9GZxp~1R3b1{ho4wMsX$$~4b#kul4&XqKcVl#3vWKFkrl{CXtx3u3UKz>{G;KQkU|amHpts?mO*J zHDcia>4iV*B5t4KZSxz;_9ab^TR=bwN|#>(DLyld$NQ?)bDV4g(-RW7b}3(U{_S{z zLRN_x6uC^@DAT;=2N_j>mP?SN$-bo;POHSM=Eh9xKz7`1$`Kh!IxkPpi?vBwrb-tE z5i2>5iHHQK9Au*$IdY_^q{NRk zXKu8Z_{rb{8i%sVv44O5Zmy;ECNXmkise_Vq3YNR`vK%+33i1Q=1aFX&^1vP0K~O( zoQw*oY)E;AyVzeeWKE2atrB zu&lvsNKhUuu-AT$aqQ;mZpP3$qlh&d^NyrHN3BuPNL} z>#ybbCiD&Vy!C%O>KB)Bt)I^r`3=Wd{Qm9RH|Zh@_1SeT%HZ)Om#x{=N`G1D?1Lrv z9^=yYz8~;UR6B4nyzn1?S^amyFg+=9Vrgm83H=!NO7?5@xq`DZ{5t!JU+f@^eN`Mw zXL@%N(Tqvh_Vj3qEnC`#CD%^MWtbO=MoVAW?o8YKx4%$2w(89o)Mq_ZFDU1to3fyWieBKW$b<16N>jg{!}vDETu!m^$+3?$kCf%QcNe~|VR*k4MjOJF zLDc?t4Bkqa0jt%l|4CtOROb^!b5~dZi0CCICN}nkzl>-m%8t7*gi{P_)~u0rvwk&m zd+cIQk3vYlogCXFRsz@DO|24-4{#NsSOYMwKsb&^?Mu8GD&ApydJmW#JGQuvSF4hW zQ`=?a%s7gq13q!*^HNg{)VUk{TQ>|7u^V6Bkr4#_5z~v61xfNrW&NK;xX6uM?%D& zG@Lst2PK_&P{!(Xy^TOGtpvU? zFxv%3i__##B0_CY12`@svE06MhX%AmOO>0FN?KOI5=@DOYT?pMa5v$)zVa8 z`Jy?uh+OO<6-~=$tQk6Kw-+V}Rd1#oWmhON+M<)^YahdzF#qo*C5G{|R6TP?Yc|`= zw5wQd3ePLp)a1P#)L#|~Ias#3F3yk3P^kVpF6x?o{NE)=zPy%L^Il6_t?mz*SJ%md z0963LBxue8{V2uAG5t(ZM+WPf(BTU_|G?W@h=n}WV4!{B%pvLKhPS3#URrxRF8xh8 zqD6KrCa>B3A81EFBaukN#!XqadZjxV7+|uBJQ(Wm*VAC!gh%zWkY~z`v2`_ib*qrP zAc_-5DBL>xD5M01Q;nEa!5~Oep~Egau$o3!E_BNtK#04{i%>_iD%EL_4alf znCOTTr7;;iQIMG9D@J-KRF&Qb0>JK9_3uY4Ja8-(>kS1p6K`U z4cu%J|5M_h_*QeIiN%b8i764b29otF#jJh*vDBx>05^5{u+ZpG_bcbZbN4UUts*ZDB~<#?B2<0F=ZPM)|#Mthyvl!zCI!9mx(ny^?C_k;Br}i`e;f?xZGsgV-$8pqU`z2*5 zNZ;4=3)LletXz~nFTz!4c)v^I-Y*_F;N1|Hmu5oayT*R^Lr3SwH&6uJ?$;R-H51ccyeQ?KsQp$Q zH1JDXHM?6o$>`Pju|1Jda)?&QZ@Sz6HIIIa#Kup*zWE>^Cg3P{Q>29V*h^b>J5<;> zJe$wHMpGl;a_xWY>UCI~!)RRIW-Bb5xyy=MQc~zt5`kXlRz5a1YX9UoAcb1hL;XJ6 zCH(PUEiV79cAif_33Y!xKXo_NZcrViY7dzGO6xN5gYZM=aTkC?^Py(MO1i9rB_RA2UR?nTH*%?|C4g1wj|-QLPQJN6t3LJvZx zH)$V1s_g^&Sc|fxWFF@m&s&_$13{t;0uuaM9Ew~+lrQx!b?>SqX*$N3!^{Ro0j`e( z%}gS;JHZ9o+2i0kt_Ck1>4A+}t11f^L&LxYcrBqUm&9nR~) zSdg^*99*bSuQZc#Kz4Vv`&T9F=o#w$!97DR1Fe0~+PSw>31~%#sRdFJ97N&gHPB85pE-dFGF0@2uv0qq zg*COb7=HUL9P6}k!WE~Y6Z8XM-nirNaR^li@fQOpK-3X`7XRHlU~LI=2kV)TcuPi$ z8$k?4z@lA832$2gTwO$rmE~A?FgNV;b&jP?|cl&h-?Jnk|ZubtT|%Lt?pWZljTYy&Nu0ugfq7NtRH-h@zMc%m@xJfZZr7JKld#_T41=d4Oe>?T35YAsFyAL+GE7evr6^v~Eac1t!+7}uJ`jno&kXsfLs>!ck5@{vf z^JL6H->AgynNikw{>Lu;{_9y{F`IW+2C5tPj2gCWPMW(>`BmXh)49(cJ46I2Pkx(z z@V<$KDfi&&h3~cV4_dn0cQ0gyIZs2a9vjS^nj?Gn@}^&HGlEOCIbF@Kw%SX7YqtIW z=EGx+S{|a;3=BBo)quc?-S$+!Bq$0wx7p@dWp5SQJ8TB(j!e(Y5LcPxbfJ7wLtc3J zani`?zVMR;{h`L#NT^GmgoWvt$Povgp^(_n#?PQt85kI%uwjV4Kzb|)qlnR=doptJxm`kLN)WG6+|(Nz;{xwY z%OaM4Mo}vO6QAtU!zUne5eNYD*^9QetKyT5)D} z!%?)oL~FM|)+7dDI21(O7v3TQxRX8=!svn@Xs{vYmC^JP(GJ&Ns_U%X87V0fwCN>HkT#kh-`|r8zIGAri?48~r$IV*3a}%x z6G|D=!=wfecl{AdXVvp{FB!tAAFbo{utz5M^%+ALNG-P{6emK)Hb%z!@0XC#P}D1H zYx7WM240t;Ehnmg#a$CRBnLZtIWZCj1qIcF5iI?+)Io`kor6O$&uyMDwKffNAShA_ zZ#Cpm5&I#{Te^^K{8*Q&$5*dju~LA<%P}+6U`&%!DP_lSt&3w*8pquJ>ur%^kHRVWi^CV-D!Tjwi81K z&!Y*P*=S(7%j`DQx~nD=qAAq=Dicp{Z&gTszw09adidA9((^=>tC*ZPMB6S9CbjCf zyZPlkQ3|%Ewv)F7^glje09JTLC}9*t$Um~63)a)qs{%w2yF6udVqqpy5#3BM^K(Jg zp;SQZ91j_Gk%AB5tr49gGSIf2JHI6elMHPuFtO%4fD|S%Gwy}xEh(*=L})>ldwF6O z@JF*C`5?44n6ZiQLCn%80|X`9zImEv$KmYS=t2V zVtpHdCr**R<(SGixY@Jn(bb|^V15l+D{xFg?H?$gaUxDgfK=kLr%(d|RBuV~E1)FV zdWyUkU<9+q_bJs79g=j%ox3g=97oTYl9pB?`XlnRXOT+*Z+M9+Sy4M_`3%rH`bsMt z|8T)qLMYHOh2OmrH(`Sn>BM`8iub@+%}N1qt^|T6?Lxb}5|ff@ z;*)b}#R0rBGc#5+_KVSnjvToF>jRa}?qT;= zu|tpSIxJzdqg^yKG`uC%tWCPFiLIfiNP2v@MF(>vG%#!<;ujVM;}kDso#NWs$vgA? zp)?CP;X_H2sKu_Uc{NtdwyQgWp>KTcID$>aDCY2kdvX{?@c!JbxELL?9X%;*=_Z#- zce<3ny$OMFi87!wS)z^U683tKWB&Ew|BnV?3Ue zz`eBxQ41EOGn?<8qLPNfsVRpXbm7usV-0OIWn~|wo3|wO^cbRvvAkLWshr64c$>o` zFK2YZgKmq|nQPmgC`kz7aHi4!dalz>o=09H1z)gvE;|cLSWWOsoa?KXFffZO!Zr$d zom&%G>3|Yv3!vE+7ZgaL3Nx`70KHB{Vmb+ryEGM8CYm$~8A#3sp7q)tS5;M|K})95 zq^Z6E0roQU5^&EiJZh zkH9PO6^bt0|1_cja&euf+Q3vo2;=v4l5?%}h(MJHmBC6nXy{=zLbrr0T?cQ8nRV84UY!aW%8+inB1G$QT{+As%t{3&4w49s@ z{2(C9tB`^zie_d>MA-!?@#bbpV$k6$H%XfWDpq+!Oydf|Yo+GUXdHM6g2`Wht{dWs zYQi*B{PQF?1G{Mg5M3C2k6%&7_@Xd^JB+khR@4fGPWDzx!3RUw4Ax$>TTvrn)ru!g zPWSIyuJSiuj}jE77IiUsa#f~Mm(+&=M?SsDUaLXiB$_TU#_=#eCQT^Es~DmFEBf+9 z>GbK-K5hmuS;8r0gWh3E#r$MTa%yVoE-z3#$`%$Dl?QP;x>RfC@ofpPUn;Ar_LDk(0|)#Jh1yjXmJGQ$E+OGO*bX1osF)ZNpu;Te z`_AFvWN7@vv`M@Y{#sHJXVJ}*J{~QsCc_VQ6N3N;-yQm7^wbY-aI8dCo+mf z<&m_sG+5cZ$IxPU3UW&YdfQ9^ANxrItHKfW7sCDXiwG6Az=rTRT*O-@jBjx)qqC6o zUcU#M5kvt&B&5ZSLPevIKaUo9Sw)k@bz9psZP#&S!n{+7#r0SI9Pu~bu}He4!F=nR zDqs{+O=@|BL*z(nD9jvFo6Ljm&cfr^2SZ&hfU>5kdEWd4cj6?bqWmzS_J6W#DdFT-=3Am!2Mw z4XWzVZL@SX9CE6ysxky~L*DvAqtO6xX=n_DL>~Ky^Q`qXm^@L=BPx>i-?QG#iD;qk z@Gp3+YO=ijIo8Q}@){dx8r*#j^NXuh#{P6=bc3v*aA-J0EI2Q`=%fjW0l z^nrWy(FpXZp`l?8P2&P`F+cs?*9@@3l_@Vi?&}DSrKCSOuQ_r&6m8nm@R!LVv>o~M z6#IrBKKT8G3EDYX+{I`4)2`*@vG3jcej}s6=Rg1a^C`@t87HC)H*wEP@N#hQAqSkL z_O|5Zt=q7H9|o!}I2W(y)5@UQEe~J)VhQ(fJ(_d49SH`4Sb{f)9 z$}m!*A=c>wF&;Q}tnM5i#7BOVFG5UZ+KEPDM?LDQsGEv#%}1<1p?|)q2Onj`8VDU0XZ^{GwW0?Oe8S8}otQE>6HYiw3NZh&R|LWIzP z8d7k5<6f)M+0kJ*()N*bKMKPBXCH7&MFpmj0Bt7cQp+Y1Jg5Q2}IDk6CH$JrqqkvxSC z?t!j83;rdKGuSec6Tux0*v`IGHDO-<*)(CO+!RY?lUH@xh(m^GC1^s@dW)BI^xvYF zP{3<28nw2neylVo#gIJD)J3RBHbm{?6j>;-3#)I`~#P-F? zjxuc#Tmcci(ap*sCe~P@{32}t4c4S#85SW(rd65N2BhVhc*-C)f|BnY+G@#!Ek@2k z-VcEHTPdIz&NS1RFfPf@`)vB9)uM;I$OewIUAyD6qkW5y4vFCvI8NVhtWi=^i@UXk zSUo>9u|3~Zl_S&XHCr*-Z1XzU{W>F73HJqSDL=)^=U>zHMKyX5Zf~G$Jp)PDc z`%(1sV)7(dS|z;YCA&i+O@1#DH!_Jp^bWC_pVW>qvo?NcDWzt(AL|{a zXR3*7KcZM{db$c48(BRX^%29zkj*%tagwr+VapavnfAJPK_*0+in==jxNAbN`UM8Y zq3e*MlXt`sV?=NdP)1iN)so3PXWXAm06hLn_C?Z5Pa(Yt9Tvv~+!tI->r*Md8p@~efapN$WFeSQmd`K~!0tP_-kMAdl(3F%5Ue{--t)4sWMJJ=iF!5WXMH9(+e5kd!wA6oW++M_trMkKr zD@YmdW57!;62ZY|l)DX7tKZKKTQR_n`r81T>kA0uhpZ%a`S|)?BY!~XdU)g$1o`}P zeB{zbS$lhzFQ=&Ee=?C-U1|93XvUnQpJj|G~z#+2GA%wxe5MJXUJgX>=Eo*Hoe#hb4 zwH*+XU*p{(Fe4rga~Zv_hPNhI9@~9@kFTPtrY6fo+VI2g@?uw51L1JVuE`iO08@}e zo@~vs4^;o_3ShI(0};ieQ6NtZZM~w=%jlSs*;=~sCWN@1g2uk_c>w_dj_4FMV?5s~ zfop=g`U%5e5R{whUBBKwCZi#9+JN1(+;#s6!+So z5%~moe4lKY<#Ym-XoiSJx+EYLtiO%Du;D4p04#(cTK5K*hLRYP9Y(@7;3K<&N z@8dVVe9=fmZ2x`%t}C{-SEYr8|MfS8tgMZN(_W2zrzkFpe)N#q_29lHhe!TnzYi|3 z?pv{E#cHmTr%%7}ICsS~`O%iO>}ri)FENY7ow>xdoZD2nc-&t0ju@$_t z_tuq5S_Z4`E?f8Pw^hgbJiLChiyoPIe{V`Ekm=A*j;nf!z2DE~IXLD{jO-Z>&5|AC z!`BjuI_)u?D#t`oPX^X;QPjbUOIP5vEll{yZwel`?3?TV`SO2Slf5zhE30lv*>oBf zKisR8X=^e))*GN4B5g66<}EjVZXly8^kG0imk0CO!q&GpRL`CrX_zeLPi#-f8YqrS z%zf-HsNMO7nYHxI@646aXPyh%?V+e7r5MdK_-gRoQyeU1le{oL6BQpHZ{1g;ZBHHCW!}EgxDUoR?jkInmi+cfy}v9EMSYE|iaEd)Hu~uZYe!JaY^OpPlhoX3r47!aGsK~pUg9svUywJR zn%GgTsbBWTvQ>NqPUC%n9VG$Aouz>$Uz5IdiMZo1o2qe`AcOB8{_6hx{J7ub3C8@~ zOjl~HUdim#h%e7bXIaTBlS+~6KU+o3zwTSLNuUtt7%XO1Q}r&MiMr5xme=a=f#|ivKWjNhe&}}tEnTLAQruU3=RaES_y^T@xLc4a{HjTc-kQ=wyc&w+|r2dsj zs!`cvF-3-ecA5a4&+00tl(nIku!WGLl>-bbE%LrQ3zbg86n^Ui?SN7){ zW_H&jvJ{otmDXTcLgx)pYpDFXd!>(O(!l;KF6P0jnRl(FGD z^Bfm(ZHcgo8WY?qsi}5f{)NW;$PHZVPs77`a8!e4=fND)l4jS5CLVg6#tTOHu$oSu z+ZiLaTND32GXLRR^_G$`oI>`f@arv>piPJX*>(_~lM zL0;*pj`QVtf19;}tm!UAe>F=9^RG#-ESsdGf~`-6x(pX(Pkz5AHCClMlFx3{K08v8 zIJ^~mt~g#R#d^9ss_W)vy~6e)Uz^5j1s!t}EfwBwqtCyu-9%AoB6b5DKI^#^)K=cZ z=U?vo`jXD@RiS0%^Xl&6Y$E7QH}WP;nRfOK7U}h&EN?Uv zJ}z?nmU@#GS?x<+Om<> z8|gLUqLjyZo`bnh^jz)edQROHsPswR<5lBJ@p|X40_bG>mMo>HJ@+YewO_aoQk2KL z73==_^8c_Vr|1?cPsB?D5AdQyioQfBRwnA_+4fYKJWqG+ds$#zAvY18oh`e3+tq_C ztQ^4%#+p1&_sRF1XEij^iV~Mml)k7P-$6jQFLs1HcCw#Adb3ln!tu9-54aDQRz=(P z)(A#KL}ZNDo7uE^N_4(m&Up%(%CxZ)U|aaIfFtW~hdFB3^J_eV!Pw@|crD}GEq3cN zv0C#lX%(^~rxZN5`dxf~%LtzmD0%JDK<>L4NNgE^x4r}pW3_I!WsXH!cj8X8H#)b1fjRtemcZ<;PNTYhS>u5 z+2a5_n;I=+i<)dEs`cJ8O8xPR4HP{AQ^4zhjQcJ_+^NJ@`Rpk88pt^3c zTb{VVvgViIz33J>OA8eq%Q#p{+xMNbaB2G5m|??Tpz-3o-;N`<+Gko8+@?pnRX?pJ zeM&RR^6)}@aY;!E5K$D(p+5O?+2dVw@=;RbVGC1Xd-?fGA_DZL1NE#v+*xnZobBlM zl62rtPY#8dpjDb@UTe!Y!tPbi_ZQGQtC%wNeH|D3#U=y$+ITHhi@MC0cD<#+QU?O` zoJ{gP*)`dCgL-1)5>6)S<s%yJk!|M>If8&utjUAuPGfgX&Y zF{o>gg9hxTpHDUQYj0z(Z~zJrFn6D>3}f)1E_4`#0+ANTvUb~}{9)KZf($wSP;{_74hfjLZrhl0B>bZ_pXH56RrCj;^3=lkR6LtWX zWYPGi-i_qsg95LzyBqmMoX7ikihx+b;2XU3a>=&)4<9}> zoc#GM1I$(#t6iPqnTk?btF4Rd$wH{b`NB*y{Y5(Qe<(`Y!uZj4PBK9UU|6`ycOC zdhF6OzgBMa6JLN06LnBmy=#e~O?8~6Fn~F(AL`_dc#+bNf6{l-QU0;o<)o?elGKak z!BT-DMkoD+bRWCTO-HCkDYNJF8+gn4I}c>=c64+|wR$iUy87^;nk#!raq)0K-s~>n z?4O5evp?V4c7NFg^f=jD^CErpDY=&s${|dF2aJ^o{mQWE3cmVoC7X!h36#OB&x<0U zWinr4xHfNI4D7YUBr3!o{Mh*8-Hm>|ryh&$wP;8y+Zz?k7-}mZWVZ0mdhRbc%C z7W&xs*W3A~<=|hHNf+PiSQqW`GdRBO+R?SrKc3uYI}mBz$FDziQYd%wdmreqpFvZW zLq(l&SO{c?JepG7Ea7$*Y9YV)ldF~6@*zDaCrY$p5 z_4}_Vy?IW<0-HTYmOpxpZ&5j_v1TVKcJm zEM~k1#m`O*G#vozpq%70_N(bP3OlbqE!E{MD%irm@Dg>yM z_|?`or9l$HDB~B~v@@)YcAt9W1MrGGc5jnkn?sAML+(h(U^~j9;?aJCvslB!U94E` zIB5sgLLgwurH^+B1*H%Fe9vk;HQYgG94MFMMq6Q{xm>r*n;U=V=cj(_BMM{i(i@aLuV0-+;+@rFLy?$Eg3b!NP5jYQ+=ji15mEs}>$kd8S^X0z8Ul6sK{QsSGJj=a!>T=c$g=kpGRn?TY{TH&hE}wx&3RW%joCh zfwGR)ofTnupBn_uzuM!=t5W{`<30JjzbrZ;Rl-8ClWNCBO{*bn4mb|C6Csi+x6wmd z(SvFTCM^M{fSD;xsZZsahEo>SXFAH~v-BtR_A!Y6)fcm|{wEG^k{M3jw6Zq9zRNCCdlG>vUgTIkQPf=TVb=!;ABi*>Ed}e5-^A z!J;QPaFPSQySa+=;=b2yUc@6%$eZs?%nL!OkYOTJzoaa`tlMQJWwKJ0=c8NJep6F(Z5~xEltF<`=jnL*& z{P;C5&(BV2(Rs zEOW+cOiP5a`jTNS>?ZKT;oSEC>%>jkx3c`)=&LKAcVfdgL}!flRP*C>E3~b0{Giez zaTawD(E#J1VE6ecI&G~tj1$_6^QpzOnLb}}i~4r>E6_(~v3+JRPo%oTeZN4l_a&DI z)nPwXLNB^>E9%D%O%i1Vq1ztrt6bc&Fh9`;*Q3s^RySoZccv3WxuG>1bvfUcJyH&M zbQLi!4=x@`HLLC1oHu#QzRoD15B0uyOdNk33PQa`kpX8U9DBFBHc>wm=eOA5L2%Y_#q)%}0_-Ja2D5EIY#+fa zkRWT1H9C`#S20YpIH9GbRW3VHO14~y{=9Xj!(ix_FJD%(iG&ZYGGqGcQjRK)->Vwg zUM@3O>a*jB_0PA9r)9Vt`N?T#+E$j?1^V+ZS%s)OnyDr_q5XX(yC3 z`sI~X3r(WM#fDr6?y>+1ycA0tL@Y2I>bTo%8>i+#FVuG_v;^7D`-x$Jf;@nx(RlU! z8a8R$D~v?~-!V;!o3TrA*xP-U8=rQLbTPsiN#WI}S!6X!wb)iFNui%szR*se9ZPgq zni=os4+ydSLeCf}msz}U|k^&dH|OIiRSCvtn#y0L*1sk3AqUCcCG(p?C|N(aw4zTK(`6k6g92d1EyVQ zY6MZ3WzftkSyF437d+r+>ZyeFyNWZD?W}%)({#&~} z&#x=gIbkRL7~?K~!s}Y|p7ub*k9T;7Nq_F`KeIyXNjgXd|^p6n0I!1Hf-rv^biFpm2 zkLx#sNX73H7~0x3PiLQ*kxc3zZkg(|S-B~xj89Oo4DB-Zz8zdl(k~$q{Q)@+HyTvn z2g0^1p2%C6gNVv3PJVjiw&l;}`)df7>#1E>aCh#9N+kvkOsw7HGOfLfiT?#UX9P*9 zE;M2SVgTNiWjfOgI%)mm>FrKzg?M{5HO4FRIuZG)A{BATJgh=jR?D0v*_FYt$}#{- zL-XIkf0nw2bxERsd}@`Z*rk6=b6yZ0#B?n&?f> zo3miF6EO-WAoj&f(aVZyn(G&UfXzsmL=@0vs;9kyjwlFcvMoH+R671oZbQ|JzgKc-1wh_F7=bVgo zU;A1BPT~`lW}i7?%Re?tD1uWLcyrZe4Lw?#d0jG35rD?GJVZvbu9p1vnr6`)6xlYn z$#0Ipt&z&Gc~PRNJtZ3DXZlj=Am6Ofa5@0Kis)&K@Mq6{o*5MkW608E>tl} z%y{UjDV)9NX_tMwfFREyK^9)vHK|NGe7$&kOh`M+-lF3xxp*s-E;gpp{FwfN7(tAb z_iJUsA!o=1A29h69)CVHwmw(fHt+cG(B>gIm@mXpR+jws=hij@*xy>PVsZC0rz#g7 z6OVoB$8+!4rG?XadAM%J*`b2PRRfr`4C5yn2@CG?6$?cWCxk%?=;z9UkQ4>vjz+BE zD3A^tbDa(clu6J@iyPw@ycPO{d*CP#t8($kAZp`4IFO(ur#8Eq=pN*iOWTN`08>| z(JP<0z~(@+=|*?VSIRk!76L^AaNjxx-4~qayWHn_(;KZ7%jG5-MNPi&K-nna2C2d) z&xU)zo?0O|M0>F+n&cGoGlMOo%*+>jUoT(!^|IW;?1aaEH1 zm7=X;T4J8k3=-66T_UKSPl#NQRjw4oOL^X0L!QOe8E!AhodBy+!SqIkJDQ`qzbDcs zn7ZFKg^lFb10{&-0uJ`7coOvd<*|3sRxP=XK#sF#&oYj%%88N=8l4wRipE1juA{1SZq`(KWOITOPp zVGG&$b_gto;YnFk%~N0Z1zccih(}v&C+Y`g;|rI$Ui}Ip9SBb$D+SE)N4v+hfR|my z`mxDgznVK;o!I&32IUjL{Y7C5cWrU=A@S01Jgj<#v=<%64nHZBur*dF0>o*mp=I75 z;3fiE*b<$>9CmqOZlVIWkU=($6g2!uf&Bb_!UP!J%cOs{Fkcq4{2xL|}sNcs;u3>IdCHkEt7$MvTxY&iuEF_$lQ`j{qZT-q1iELcoXw!W~Sj~)lZL%@W4G6eR9`(A*a!LzC(Y0*K$smtL3O8ovUw` z0aI7bqDD(`Rh6Fg1w`$@jO+S-Pq-YH5eQeYtMvwJIms=i?zE_61+JP z-e6t2zW}jKs2}n`i9kfAn^yYp__aJF!hM@v)fqyEY#@!IfHcHyuqoOV&`wwzQM7yw z{is^9S0%db+!kh9G-q@G5W*c2c~eSQg+X;MF(iPjvOfqeV*eVJ#0Pf>Mi@Y&{l=bW;JZ6)|3rg2SaLri>E?mrT8`C3jxx} zptFPuqwye}SVQIdEM0Ms=H{dUB5mfpmHK(J>)r}@LjPU1bN!bZadY&iRJmmo?d@O* z6{d{f>U_FoNPl_@4T8rS!q~$-8P^sCgoIM}c;S!e3Y)|-P|QqYldzsngDO*N7|90V zC}~@$FkgtkBmWfI#yS734A8t7QH+k9r`sK**G~UzfB)fq&Gwl8nK~$o& zT@Rc_8l(o0%lRzAMdr1VTsM}pD%0s>>DOTCObsr~56Ysqnbaj4dCAXD0$&XjIWSaX zZqrl6=7Wt+tnUyRhw_!Y!H|2m3~?jbbLNl;jd)tQaD&0<6S)&?UvJWlR7E5H+!>=B zs6rllz(I#@D_acAMIF9@Uo^K?= zkLvtd&$1Ai^kV(m^nuI{RP5&J7{w%79LPYtUXHXM?zq|yi zCc6?Q>WR>=TKo4-sJDbREIT1Mc>o;L!AUiphL^2 zz69hxgbTNePI9TRh1sq^X*<)7jx+q438jdPzQ7J7SWN%&{J1yqVW#E=-NS6krJ}6E zi0Fk2VGX^z+5I53tmo5HNAc0Px98N7U$N;3X9~d4pw-k1*TP3rFBC-rutSS#jkm;&j3{`WsEy8m8yRLlRaf zG7>b5_BTir6{w_U4rKOwC&Emf ze{Epgy}Rh&BDf$64bv~V*)BjpixHsjCIwD-DoQzoX4ldi8oSS^_&1feOQ^5EOpVlc zj)B$mg&$2WaPv+_?kkfV`rf3^pEFKJ<-ptAp?yOyr|dY zfEy;GxpXoVg^DnGFajRGV`1EC!GBSRW>|N0IbMgquO6q$G)xA~etdc=1&@1}2=)iZ zIf_X5J~h(S1xRmdO(TPENLc)UBNC86=Aiuk`wjBj9r9*$p@dX3nv4DTM{aP=auMSe zZsJHGx3?kqK?dBH5i+pmuWdP%%}Vl+^GL@mGdldq2p^C^kzQ1w88+5ecL0R3m~dXe zWcBMN*tx@m_9I#;xp;fKhLjsY0GP`pgXS-2zTW0ZY;oub15E3kmzvKRbQPwH!0M}L z`$Sgpbkq_=v= zC>DY>2Pe98@JoTF5cBgsr#ua7p?Mk824oPyx`{ZKjwlxE_iH5Dd-WHbh|Yb$eSC5D z68_+04ml_DtD!_gqg9NtdH+gz2tNG}U8*X^`5>7CfNhjmKZy>do#En2#uhP-(D`A5 zN-2sr-dZ+lo8L>vh$l$~|l` zD%V!vt%A+C6|Ge&cc4g(D9zS!LZ5zoejaxp9-1&IT;kgC1j;$vGt^{CUSbPf#=I%f zmEtp!WV%xwha2jp$@wGWL*=YjAHQCnuYsB~R?VQ}uhYgOH?GZsXTl_M_zJ4!# z7{hLwS`MhjKnW{7Vq@=G3(QWVgL07>oggBtWN2fE z7UQ_m#G^=`{hbNX`!l_dQM$&X%f#S1A*F<_5vt~J%%Ty86%GIczs^PS0zWJ1#3Ecq z03av|cu;4N-b8lUnuNT8m|tLt5B(;9VMHJKM2lQ$JC=4|LaB=y$h<1N$%Y?eii(Qz zVwgsMA{3)4@st^JposbYId1(AoMHLj^~SM;1=4}A5&z3cZbxjxq_Sum=C)A9NJXbryda7zf8SS!<)R6Im3k{I&H+q8}5!sbV#NSx;e??5BtRUEQ3 zbij_TtA_Xti)d9Q5%`@XbeQQ+*I!gU#;{!+F?(y)H~`LCLBeeqe`?w_*qs zpfd{*R%H=j7G&Eaf?__2^`AWQHg{o z+aN$P(D_HcC<+_l_f9cnfwm<3_p`w84}%90OzHaL+a8!DWb6jX&Oj1n4M#NsN{pC^ z5|S09SV&x!57qS$IA-zg^Aaja>c4D^TZM0)mq;7P^?9sw?c+w$k4O9xU3L|4IGYoN z2;yg)m@{5X3@C*4yXc67Cd0pwPV!&Ql&h@qiA%`j%W)c;K2@-SdgFhllGOu@|1si; z+AsHWxAau)I!B`IMaedcjOT?;E=|sPycA=E1ehu~0V@XIJ)iH@v<_oYo(N!KoFr3c-OiK~= zPfBk>)^7SZtY98GPBYe`1;C34&b($nrl->4F+D{xO!&=#@(WWH>iL71`FLekD+F8r z#PE>ow#2;o>8Sj72#6kFl?0C5S{<{k7ls?jtP42Zvx_(XCWPJt6ptBSDg5?-?&sv;4BY=RvK>LMyL#dh%hPkm zUXTg+sn6bSY8`fDq!qHe19Yzfgv*D#4P?3m#82NsckyGf)c-#%&s#W3`rmZC;>?0= zHm4N4IYPoPTkhxGEQlEK@1y0GQ_PsWw>X+}SK3MS9UeHrFfaUyOf~2B{%J%#d}K_M zhGGIq;MglD*wi|W`$DJ(GM<2(@p^tl=#8z@|49YLsTv=ofg33YWh-Hxk_6zMdU>F8 zeiMFZaCUth>(KS=SCa4loYek@jj2}^QA9tuji-beK}xa7IobLP>*t*{o&sxq(!}9nRH3hqXoSPsJPtQIr8mZEGDJU zfr0@JUGU_{vj_(;jYX`vdz*!uTkY>{5VsLknhu%?6KioA-IhpWY++`&rwdb?cw)yu0;iU_i#|N79>T4fc9Ft1Ur4 z&kN#o$IhM4YK_*fUmqP4bI92_OKAqA+{e%FW^nMfE23L#1^>8%uOBNr$D(s0%O8`8W{%4FdKl4=kf}Ralj&mDO=|_3G!LEMvb<$>u&PYr9t`+x)1aEyg&kCdG=oD?^>> z%jeI(W1u2aGb=AIZ_L{H)p^11-@l(eckT}6kuJhMraTyoUjg)^TeIwXH6ESX9Uc`W zBbMjyzlnMSjT5r?8!XHARthj}Q*5Xq>CL5KIO9>0}j*i|_Rb723u6hZD@!lJwqqglG9a^i{ zkK^H%Er9z2SeX5nKCFn!{}rqG`BRqbj5uU|68w+ja(=x2+8eoGM<3SK)=nI+snO`| zaQ*AAzYeLZZv-!750+ZwQZ! zJm0XIh55e1^D-4THyXtyBg3xn{AG*7c~U}mZXHOUUQvSuO)@Ik6dngrZfpRS0W%e38#GjMXfm>n6(GBq`|FYweOnyd65H*RcytgorL8Q%Em zGiR8rtgLu=cv|te;`XbJ80EPjf@SpaSh-=hq^Aa?L^t@rQaP8l}o<^f3=#(ct+ZhBn+$k^5Syoo|sdwy=gcS#@obNpms}(&xJ)`5} zKLB8Z-4gcl@x6nce=8wD2&Ni4c3PVAC-3rdhg2%SWOq3ahRF7W#b--JX8Wu zcNrQTeTd1|Gntv0=F@DR3V+?d|Jw@<{-L3vUpH;qjT6WD_kZ8GMwo9H9AzWUfQjqd zw{IdC(fE8t^jT&1hYR~we@wo$Ox-(V=9)_D7QecyDi^{UHgO&KHr!G2y|;hd`8WF&zn zY;9jPT|+nfb;Aa3Y^(3SWt5r`=E+y%>8odt$}ZO`xjj;SproqmOZj-q&wq_B!`IhhT3u6f6;+3g z*~&Y}a*Ho4*BlWyb>iB!p(ACrA<>1mod39e;Njxgr%V4*b6Up!zin=obEo=m02EKF zs@@nMw+|Y}x^waKufiH*!zXBe*cY)gsI&93nx>`!#!h~YkLLr$Z$KtD$W85<3%hGh zkj}dOgifYyQKWvwx0HU}#^pb1Gj<=Ee zwzi_+@;9*n+SL!6?mnLyjp({MK3;Bi>_(e8Heqzz6?`A{UUp{{+UO2h*=$W`6>ThC z)3y2ed7RyAr!mvSk_4TMCFlVWPPo_M@3^n0Qq+nilP=Z>f6_Sp|j9(T=S z=O%al0fs)3$@LV!}(=zN>uu?c{$s=h2_RMFpWMw5g?7(!#<*kM#5jpR&sB zQbB7bmi9>c;`^Kd)Az%AdV2OP=X*_h2R}LD$=ll+aUWqmyhNyvuM)*bG6cXl}Z!f$-s|AJog}QV9{s)Xv zuiLuyE)0o_3-fbFlB6df{%(4BP=CJx^8?JISA&bX+`wQ?C@Q{(Eq)JgUNa@z^xy!t z>l1(S{gXT(N7SxIjqsAVxRU7(St>d%E=8|745V`>o^6a2+_8fRS8?phl|3HLR^4Kv zq8BiOkdtq0XvoFQ&8+bJ0q<=mlsxhr7V78EpFhO(o_{`glqL1nx0A=jvEbCF-f(*+ zCZ;X&ZnEWwp?=t%wu1Of?Yy3snJInU$?4K?dr^&>TtE76+Ia84fP#SmH>`n}%kM1n zKf5@A)a?)x+qie{UKG)3F{Si&vR9+K{?5HX8 z{u>!$$sX}T*<-Y8`mP|gWi<=$}fYcS^5eVMZr)Omo`2Q+J@V(sIPg_sn(pI;g*}mW)nS4&**Nq!@!3TWs?%iP%bMuGDnod(E-~yz! zz^h;C0Y+w~ZDJDRf_WzE_QLgqGk}_Cj5_7Ob<>6LsUGYf5B_nhV0IuV)|{9;6pxgY zmZ_OpM0U0gd0d}r$81J%%?!_(2TI1qQ2;4LbSG%U<6F0G#e9ew0+~HjI~={!nVq~! zmX-;I#>R?p$m zamcWK4}G(rkL*4xfrC2nF)?(wwSv@A547GwJPKz%{Wa?dr<{`-Sa^J!=vGhIoTngM z#ak_gi}Lq_`oPk|&M;ee@`TIs>hdQ$gX-(g|8?(P%6Na#Zf;39P9=5rp4vf+Wq?61;9Kdj&Te#xJU-2dT4 zCY%$#ijydieta4I-!}^!Tztz3woP1%ZwX($YTe>n&fZ$K;-7~hi}SB*Q@TJYyl=i3 Ut$*?y%rlC9O!;WS;R}EKA2iK5yZ`_I literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index db6d596f57e7..cf472c7738e1 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -522,3 +522,30 @@ def test_legend_title_empty(): leg = ax.legend() assert leg.get_title().get_text() == "" assert leg.get_title().get_visible() is False + +@image_comparison(baseline_images=['legend_large_markers'], + extensions=['png']) +def test_large_markers(): + # test that legend scales to fit markers with large markersize + plt.figure() + a, = plt.plot([1], [1], 's', markersize=40.) + b, = plt.plot([2], [1], '*', markersize=40.) + plt.legend([a, b], ["big square", "big star"], loc=2, numpoints=1) + +@image_comparison(baseline_images=['legend_large_markerscale'], + extensions=['png']) +def test_large_markerscale(): + # test that legend scales to fit markers with large markerscale + plt.figure() + a, = plt.plot([1], [1], 's') + plt.legend([a], ["big markerscale"],markerscale=20., loc=2, numpoints=1) + +@image_comparison(baseline_images=['legend_large_marker_in_tuple'], + extensions=['png']) +def test_large_marker_in_tuple(): + # test that legend scales to fit large markers in tuple + plt.figure() + a, = plt.plot([1], [1], "ro",c="green", markersize=15) + b, = plt.plot([1], [1], "w+",c="red", markeredgewidth=3, markersize=40) + plt.legend([(a, b)], ["a and b"], loc=2, numpoints=1) + From 6baff85389d115b8b896294c06b93ce2579ab47a Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Thu, 8 Mar 2018 15:11:45 -0500 Subject: [PATCH 03/15] added documentation --- lib/matplotlib/legend.py | 3 +- lib/matplotlib/legend_handler.py | 47 ++++++++++++++++++++++++++++- lib/matplotlib/tests/test_legend.py | 14 +++++---- 3 files changed, 56 insertions(+), 8 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 9fe19c01822b..5280506ca6b0 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -945,7 +945,8 @@ def _init_legend_box(self, handles, labels, markerfirst=True): textbox = TextArea(lab, textprops=label_prop, multilinebaseline=True, minimumdescent=True) - + # if handle is larger than width and height get new width and + # height to fit handle else keep width and height da_width, da_height = handler.scale_dimensions(self, width, height, orig_handle) diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index dd0bc1d26569..3d5e0e2b1c9b 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -89,13 +89,46 @@ def adjust_drawing_area(self, legend, orig_handle, return xdescent, ydescent, width, height def scale_dimensions(self, legend, width, height, orig_handle): + """ + Return larger of input width/height or width/height of orig_handle + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle + width : number + The width that is being compared to width of orig_handle. + height : number + The height that is being compared to height of orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + + """ return (max(width, self.handle_width(legend, orig_handle)), max(height, self.handle_height(legend, orig_handle))) def handle_width(self, legend, orig_handle): + """ + Charles I'm not sure how to write this + Return width of orig_handle. + Default implementation returns -1. + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + + """ return -1 def handle_height(self, legend, orig_handle): + ''' + Charles + ''' return -1 def legend_artist(self, legend, orig_handle, @@ -239,6 +272,9 @@ def __init__(self, marker_pad=0.3, numpoints=None, **kw): numpoints=numpoints, **kw) def handle_width(self, legend, orig_handle): + ''' + Charles + ''' if isinstance(orig_handle, Line2D): marker = orig_handle.get_marker() marker_size = orig_handle.get_markersize() @@ -249,6 +285,9 @@ def handle_width(self, legend, orig_handle): return -1 def handle_height(self, legend, orig_handle): + ''' + Charles + ''' if isinstance(orig_handle, Line2D): marker = orig_handle.get_marker() marker_size = orig_handle.get_markersize() @@ -687,6 +726,9 @@ def __init__(self, ndivide=1, pad=None, **kwargs): HandlerBase.__init__(self, **kwargs) def handle_width(self, legend, orig_handle): + ''' + Charles + ''' handler_map = legend.get_legend_handler_map() largest_width = -1 for handle1 in orig_handle: @@ -696,12 +738,15 @@ def handle_width(self, legend, orig_handle): return largest_width def handle_height(self, legend, orig_handle): + ''' + Charles + ''' handler_map = legend.get_legend_handler_map() largest_height = -1 for handle1 in orig_handle: handler = legend.get_legend_handler(handler_map, handle1) largest_height = max(largest_height, - handler.handle_height(legend, handle1)) + handler.handle_height(legend, handle1)) return largest_height def create_artists(self, legend, orig_handle, diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index cf472c7738e1..3be0b1d8f536 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -523,29 +523,31 @@ def test_legend_title_empty(): assert leg.get_title().get_text() == "" assert leg.get_title().get_visible() is False + @image_comparison(baseline_images=['legend_large_markers'], extensions=['png']) def test_large_markers(): # test that legend scales to fit markers with large markersize plt.figure() - a, = plt.plot([1], [1], 's', markersize=40.) - b, = plt.plot([2], [1], '*', markersize=40.) + a, = plt.plot([1], [1], 's', markersize=40.) + b, = plt.plot([2], [1], '*', markersize=40.) plt.legend([a, b], ["big square", "big star"], loc=2, numpoints=1) + @image_comparison(baseline_images=['legend_large_markerscale'], extensions=['png']) def test_large_markerscale(): # test that legend scales to fit markers with large markerscale plt.figure() a, = plt.plot([1], [1], 's') - plt.legend([a], ["big markerscale"],markerscale=20., loc=2, numpoints=1) + plt.legend([a], ["big markerscale"], markerscale=20., loc=2, numpoints=1) + @image_comparison(baseline_images=['legend_large_marker_in_tuple'], extensions=['png']) def test_large_marker_in_tuple(): # test that legend scales to fit large markers in tuple plt.figure() - a, = plt.plot([1], [1], "ro",c="green", markersize=15) - b, = plt.plot([1], [1], "w+",c="red", markeredgewidth=3, markersize=40) + a, = plt.plot([1], [1], "ro", c="green", markersize=15) + b, = plt.plot([1], [1], "w+", c="red", markeredgewidth=3, markersize=40) plt.legend([(a, b)], ["a and b"], loc=2, numpoints=1) - From c062a4b3d12dc285028c4241806b4023230370e4 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Thu, 8 Mar 2018 18:03:50 -0500 Subject: [PATCH 04/15] updated documentation --- lib/matplotlib/legend_handler.py | 73 ++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index 3d5e0e2b1c9b..50113cf39c7d 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -89,7 +89,7 @@ def adjust_drawing_area(self, legend, orig_handle, return xdescent, ydescent, width, height def scale_dimensions(self, legend, width, height, orig_handle): - """ + ''' Return larger of input width/height or width/height of orig_handle Parameters @@ -104,15 +104,14 @@ def scale_dimensions(self, legend, width, height, orig_handle): The object that the output width and height must be large enough to fit. - """ + ''' return (max(width, self.handle_width(legend, orig_handle)), max(height, self.handle_height(legend, orig_handle))) def handle_width(self, legend, orig_handle): - """ - Charles I'm not sure how to write this - Return width of orig_handle. - Default implementation returns -1. + ''' + Overriden in children classes if orig_handle could be larger + than the default DrawingArea height, returns the height of the handler. Parameters ---------- @@ -122,12 +121,22 @@ def handle_width(self, legend, orig_handle): The object that the output width and height must be large enough to fit. - """ + ''' return -1 def handle_height(self, legend, orig_handle): ''' - Charles + Overriden in children classes if orig_handle could be larger + than the default DrawingArea height, returns the height of the handler. + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + ''' return -1 @@ -273,7 +282,18 @@ def __init__(self, marker_pad=0.3, numpoints=None, **kw): def handle_width(self, legend, orig_handle): ''' - Charles + If *orig_handle* contains a marker, returns markersize multiplied by + legend.marker_scale, if the marker is not significantly + larger in width, do nothing. + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + ''' if isinstance(orig_handle, Line2D): marker = orig_handle.get_marker() @@ -286,7 +306,18 @@ def handle_width(self, legend, orig_handle): def handle_height(self, legend, orig_handle): ''' - Charles + If *orig_handle* contains a marker, returns markersize multiplied by + legend.marker_scale, if the marker is not significantly + larger in height, do nothing. + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + ''' if isinstance(orig_handle, Line2D): marker = orig_handle.get_marker() @@ -727,7 +758,16 @@ def __init__(self, ndivide=1, pad=None, **kwargs): def handle_width(self, legend, orig_handle): ''' - Charles + Returns width of largest handler in *orig_handler* tuple. + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + ''' handler_map = legend.get_legend_handler_map() largest_width = -1 @@ -739,7 +779,16 @@ def handle_width(self, legend, orig_handle): def handle_height(self, legend, orig_handle): ''' - Charles + Returns width of largest handler in *orig_handler* tuple. + + Parameters + ---------- + legend : :class:`matplotlib.legend.Legend` instance + The legend that will contain the orig_handle. + orig_handle : :class:`matplotlib.artist.Artist` or similar + The object that the output width and height must be large + enough to fit. + ''' handler_map = legend.get_legend_handler_map() largest_height = -1 From e7ba0911665431269c0c03bcf3d0ddc6047b7121 Mon Sep 17 00:00:00 2001 From: stone Date: Mon, 12 Mar 2018 18:02:38 -0400 Subject: [PATCH 05/15] Replace baseline_images/test_cycles/marker_cycle.png. --- .../test_cycles/marker_cycle.png | Bin 44979 -> 45106 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_cycles/marker_cycle.png b/lib/matplotlib/tests/baseline_images/test_cycles/marker_cycle.png index 160b68b8bf3ac4f985cd66a155033af15a8a1eb5..b65edfa13351739cc60231b5b3790fde4eba0a8d 100644 GIT binary patch literal 45106 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 Date: Mon, 12 Mar 2018 18:50:44 -0400 Subject: [PATCH 06/15] made AnyObjectHandler a child of HandlerBase --- tutorials/intermediate/legend_guide.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/intermediate/legend_guide.py b/tutorials/intermediate/legend_guide.py index f8ac59143609..57475e383d4e 100644 --- a/tutorials/intermediate/legend_guide.py +++ b/tutorials/intermediate/legend_guide.py @@ -216,7 +216,7 @@ # The :class:`~matplotlib.legend_handler.HandlerTuple` class can also be used to # assign several legend keys to the same entry: -from matplotlib.legend_handler import HandlerLine2D, HandlerTuple +from matplotlib.legend_handler import HandlerLine2D, HandlerTuple, HandlerBase p1, = plt.plot([1, 2.5, 3], 'r-d') p2, = plt.plot([3, 2, 1], 'k-o') @@ -241,7 +241,7 @@ class AnyObject(object): pass -class AnyObjectHandler(object): +class AnyObjectHandler(HandlerBase): def legend_artist(self, legend, orig_handle, fontsize, handlebox): x0, y0 = handlebox.xdescent, handlebox.ydescent width, height = handlebox.width, handlebox.height From a63c07878e2cfeb08639d4dc8833f4814cdd087e Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Thu, 15 Mar 2018 12:53:36 -0400 Subject: [PATCH 07/15] fixed tutorial --- tutorials/intermediate/legend_guide.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tutorials/intermediate/legend_guide.py b/tutorials/intermediate/legend_guide.py index 57475e383d4e..7f366d18c52e 100644 --- a/tutorials/intermediate/legend_guide.py +++ b/tutorials/intermediate/legend_guide.py @@ -216,7 +216,7 @@ # The :class:`~matplotlib.legend_handler.HandlerTuple` class can also be used to # assign several legend keys to the same entry: -from matplotlib.legend_handler import HandlerLine2D, HandlerTuple, HandlerBase +from matplotlib.legend_handler import HandlerLine2D, HandlerTuple p1, = plt.plot([1, 2.5, 3], 'r-d') p2, = plt.plot([3, 2, 1], 'k-o') @@ -234,6 +234,7 @@ # single artist for the legend to use. Signature details about the "legend_artist" # are documented at :meth:`~matplotlib.legend_handler.HandlerBase.legend_artist`. +from matplotlib.legend_handler import HandlerBase import matplotlib.patches as mpatches From 140206e9ddf39bc9870c65f9c29676914c51d83f Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Thu, 15 Mar 2018 14:30:25 -0400 Subject: [PATCH 08/15] updated documentation --- lib/matplotlib/legend_handler.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index 50113cf39c7d..3897c1e03d4f 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -90,7 +90,9 @@ def adjust_drawing_area(self, legend, orig_handle, def scale_dimensions(self, legend, width, height, orig_handle): ''' - Return larger of input width/height or width/height of orig_handle + Return (width, height) where + width is the larger of input width or width of orig_handle and + height is the larger of input height or height or orig_handle Parameters ---------- @@ -111,7 +113,7 @@ def scale_dimensions(self, legend, width, height, orig_handle): def handle_width(self, legend, orig_handle): ''' Overriden in children classes if orig_handle could be larger - than the default DrawingArea height, returns the height of the handler. + than the default DrawingArea height, returns the height of orig_handle. Parameters ---------- @@ -127,7 +129,7 @@ def handle_width(self, legend, orig_handle): def handle_height(self, legend, orig_handle): ''' Overriden in children classes if orig_handle could be larger - than the default DrawingArea height, returns the height of the handler. + than the default DrawingArea height, returns the height of orig_handle. Parameters ---------- @@ -758,7 +760,7 @@ def __init__(self, ndivide=1, pad=None, **kwargs): def handle_width(self, legend, orig_handle): ''' - Returns width of largest handler in *orig_handler* tuple. + Returns width of largest handle in *orig_handle* tuple. Parameters ---------- @@ -779,7 +781,7 @@ def handle_width(self, legend, orig_handle): def handle_height(self, legend, orig_handle): ''' - Returns width of largest handler in *orig_handler* tuple. + Returns width of largest handle in *orig_handle* tuple. Parameters ---------- From 381c8affbde72568f76922cc218e38211038ac6f Mon Sep 17 00:00:00 2001 From: Bolaji Fatade Date: Thu, 15 Mar 2018 16:33:05 -0400 Subject: [PATCH 09/15] make scale_dimensions private and set image comp style --- lib/matplotlib/legend.py | 2 +- lib/matplotlib/legend_handler.py | 2 +- lib/matplotlib/tests/test_legend.py | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 5280506ca6b0..13fbe55a8095 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -947,7 +947,7 @@ def _init_legend_box(self, handles, labels, markerfirst=True): minimumdescent=True) # if handle is larger than width and height get new width and # height to fit handle else keep width and height - da_width, da_height = handler.scale_dimensions(self, + da_width, da_height = handler._scale_dimensions(self, width, height, orig_handle) handlebox = DrawingArea(width=da_width, diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index 3897c1e03d4f..ddef425f41ab 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -88,7 +88,7 @@ def adjust_drawing_area(self, legend, orig_handle, height = height - self._ypad * fontsize return xdescent, ydescent, width, height - def scale_dimensions(self, legend, width, height, orig_handle): + def _scale_dimensions(self, legend, width, height, orig_handle): ''' Return (width, height) where width is the larger of input width or width of orig_handle and diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index 3be0b1d8f536..6a705e77ba97 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -525,29 +525,35 @@ def test_legend_title_empty(): @image_comparison(baseline_images=['legend_large_markers'], - extensions=['png']) + extensions=['png'], style='mpl20') def test_large_markers(): # test that legend scales to fit markers with large markersize plt.figure() a, = plt.plot([1], [1], 's', markersize=40.) b, = plt.plot([2], [1], '*', markersize=40.) + plt.xticks([], []) + plt.yticks([], []) plt.legend([a, b], ["big square", "big star"], loc=2, numpoints=1) @image_comparison(baseline_images=['legend_large_markerscale'], - extensions=['png']) + extensions=['png'], style='mpl20') def test_large_markerscale(): # test that legend scales to fit markers with large markerscale plt.figure() a, = plt.plot([1], [1], 's') + plt.xticks([], []) + plt.yticks([], []) plt.legend([a], ["big markerscale"], markerscale=20., loc=2, numpoints=1) @image_comparison(baseline_images=['legend_large_marker_in_tuple'], - extensions=['png']) + extensions=['png'], style='mpl20') def test_large_marker_in_tuple(): # test that legend scales to fit large markers in tuple plt.figure() a, = plt.plot([1], [1], "ro", c="green", markersize=15) b, = plt.plot([1], [1], "w+", c="red", markeredgewidth=3, markersize=40) + plt.xticks([], []) + plt.yticks([], []) plt.legend([(a, b)], ["a and b"], loc=2, numpoints=1) From f62eb9bdfdee8c0e51d0aee5de3623a269f385a5 Mon Sep 17 00:00:00 2001 From: Osarumwense Date: Thu, 15 Mar 2018 16:57:31 -0400 Subject: [PATCH 10/15] adding the right sized pictures for tests --- .../legend_large_marker_in_tuple.png | Bin 17887 -> 5591 bytes .../test_legend/legend_large_markers.png | Bin 21271 -> 8833 bytes .../test_legend/legend_large_markerscale.png | Bin 18646 -> 5757 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png index 0c1e5f1d6b503f3a085757da2543a7fc4742e8e8..6c3c9d9ccf8ecbd7b5d4ff1c2bf54be05f3faf11 100644 GIT binary patch literal 5591 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 literal 17887 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 Y_V^Vpkz8sn*hd&%S^Zqb+3UCe7eLanCIA2c diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png index df333e39937925cc7ef897e5a5d7dd789acca37c..7d7811b8401cf6dd9ca5c9469d147bc4844e5367 100644 GIT binary patch literal 8833 zcmeI2cT`hZyZ;YG(UIbeYsNx}zJQEMlMVu5#t{tF5e4ZWO%MzcI;7ap83i;b7%6cE z6p;=BQbJG^3@y^ZK!Q@GMFIp!z5BT4z3=;5zu)ivao7Fhu6tkB;tU}4(hdlW(LEBZZ*tV%#4kv5|AnZi2s0g>e|%FL9T}|iDCp@11nq}V zzx;G2E_-q8;$5%6D{L`~ITrQK;^#e4=HI`KkMy1ps&;XYw!!DW;IW9lkHO7gz+tJmehV!GrhNeyCkalx??O` zeA{8)&!ss_-AhX|D}{e1_zdC(`*KR>bmm7cF4~s36m5YB=g%lwNI;Ohmc%yb)SiDG z{>cXqr>&iQb?4{i+LPrJ^%7QR&m4YW?IZ)4K-KPA9<`UcCTZ!;B^mLW_7L|qY!cXh z-`YtEGTAmiR7UTyL5$6Y7+i-IZuI2YXcUSiQ}*gVeN`m^$-l|a@_>z(s1xen5h&%D zk=V|MMHUzE-`7Kj)H+lA0jTMP!% z!}gGPye{pF3`L{qeNM<6r0}y-O71tu-`)CFRWGDB|HX?J1__5D+0&Bcx$jFTOP-PHbc;8Cs$Y3r}iY`x2o0# z31+h2w%k;p``uK|h@KyOLZMjPMBw7`3Z$F&Pk#9ciMgKKG#&d5ff*_NWoP2tjqrHU z6Rx#W9_tQbgqYVVhh8;+2-uy3o9~@Sh*|mTijB!;1uhd8%k$n<3t4 zLw37Tc?0HOnx*1dd}d}-AcrLHCiA(q z)SP4NM*SVTwL6R5sv?)_W`Z_3Q)6`edIPI#ZlEY#4Wwc)85^UL^yO93Y968srIB-g zg^olTk3~7>;&`7eQpIgZ(a{1jE}=C=G4sUjAEy4it=+CqH}6v>*kx*W-PrB@(Amkt zFw+MYFIr@Yw8)~>g4pdnY%Du*3^N=;BdRwv8ZX-*dA~ZEPTf!Xw2S;Mq#!5534GdY zHE!w=3d(S6MWYcda&9jp{FrN{u~TJYURip7<}13z`lu3Kuw2J!Ka#GdK~9RyO_(cW z3eHLRmK7KEL}+Pg)vXPB^!4}O-=Y0-KQQ-f+IXuI)SYeG5T4kk9GhQVZ8$$z(s9p5 zg``H(_4`@7e)dmFDm8MdJ&aMK<+IuDTAxYuX%J>Mtv*Rw@JDo14|!*)#j_JxS^jAj zHEpamt=iGb4&mjA)+ye68NJPtTd~xZi{*}(Z;W3f8HKwO!J?v1=JgkF2Fh@T@Ei~) zukO%($6K4n2-k*Yk`*t_E}KKXc11*PyXja}Fui+Wq^c^gBO{E}WTC9AoS5Ar>JP16 zVmMi>oe84n=CsHk(%fB(PHG@OH|<%ikDia5NHGq2b#+VPC>Ngmk2evyN6H%Y;Mmi_E#LOUbQ$uM;QLUp z-0)o&c6WEf`-xy<8AY_yp%@JL;IT$w!*}y>M(p`Ahq$@Ig6TvS-`hKB`7JP<0t-mw zIu|9x-cmHa)cO2u5wTy#Yehl)MS(A5rkQizb&`=t@@8jnj42I{dGVT$xSBO2)%a(5*fyL?v;dqBGl6f45K4WlR1D{on{T zKDq!Y_^3cKMtj2!0TE)PAKcvuXFI$+pg5a!yrpx2W7mt2K6tB4+U)S@e!JVJv18AW zC&s}$?&A&nY`}7@cWAqu%Iqr{6S!+V3AC=?6Q4bu`Y3B}R%@ zkTdFhwLA-qTC#!r)!;wSHo*}cPtfC0j(K~CKcN!?H%_n!Uy zo$l%uss}{z-#(1m4?%CgB|y-P|LbskB-uy3wy{?9Jv9EkWW3L{%{#p%hv4%0fE&=@wx>*|Rp04FIfJTe3l@%owD-zIFSqYOfCGHt#9?jJraiFya zrsOCRdZtU=catT z%LYm2b$^SGpFfcE1EgCH20IyxMAe&dDGshS*kjP+bHEjDbq0k-?8K~4=fBQ8n~gJ# z7nDkwNDh;Vn~r?GfHYW9?THYgq%x}4>J(oK|K~7-H-f!vfqw)h8OfrUh2tK`=zW3h=5av6sK

U}4(hdlW(LEBZZ*tV%#4kv5|AnZi2s0g>e|%FL9T}|iDCp@11nq}V zzx;G2E_-q8;$5%6D{L`~ITrQK;^#e4=HI`KkMy1ps&;XYw!!DW;IW9lkHO7gz+tJmehV!GrhNeyCkalx??O` zeA{8)&!ss_-AhX|D}{e1_zdC(`*KR>bmm7cF4~s36m5YB=g%lwNI;Ohmc%yb)SiDG z{>cXqr>&iQb?4{i+LPrJ^%7QR&m4YW?IZ)4K-KPA9<`UcCTZ!;B^mLW_7L|qY!cXh z-`YtEGTAmiR7UTyL5$6Y7+i-IZuI2YXcUSiQ}*gVeN`m^$-l|a@_>z(s1xen5h&%D zk=V|MMHUzE-`7Kj)H+lA0jTMP!% z!}gGPye{pF3`L{qeNM<6r0}y-O71tu-`)CFRWGDB|HX?J1__5D+0&Bcx$jFTOP-PHbc;8Cs$Y3r}iY`x2o0# z31+h2w%k;p``uK|h@KyOLZMjPMBw7`3Z$F&Pk#9ciMgKKG#&d5ff*_NWoP2tjqrHU z6Rx#W9_tQbgqYVVhh8;+2-uy3o9~@Sh*|mTijB!;1uhd8%k$n<3t4 zLw37Tc?0HOnx*1dd}d}-AcrLHCiA(q z)SP4NM*SVTwL6R5sv?)_W`Z_3Q)6`edIPI#ZlEY#4Wwc)85^UL^yO93Y968srIB-g zg^olTk3~7>;&`7eQpIgZ(a{1jE}=C=G4sUjAEy4it=+CqH}6v>*kx*W-PrB@(Amkt zFw+MYFIr@Yw8)~>g4pdnY%Du*3^N=;BdRwv8ZX-*dA~ZEPTf!Xw2S;Mq#!5534GdY zHE!w=3d(S6MWYcda&9jp{FrN{u~TJYURip7<}13z`lu3Kuw2J!Ka#GdK~9RyO_(cW z3eHLRmK7KEL}+Pg)vXPB^!4}O-=Y0-KQQ-f+IXuI)SYeG5T4kk9GhQVZ8$$z(s9p5 zg``H(_4`@7e)dmFDm8MdJ&aMK<+IuDTAxYuX%J>Mtv*Rw@JDo14|!*)#j_JxS^jAj zHEpamt=iGb4&mjA)+ye68NJPtTd~xZi{*}(Z;W3f8HKwO!J?v1=JgkF2Fh@T@Ei~) zukO%($6K4n2-k*Yk`*t_E}KKXc11*PyXja}Fui+Wq^c^gBO{E}WTC9AoS5Ar>JP16 zVmMi>oe84n=CsHk(%fB(PHG@OH|<%ikDia5NHGq2b#+VPC>Ngmk2evyN6H%Y;Mmi_E#LOUbQ$uM;QLUp z-0)o&c6WEf`-xy<8AY_yp%@JL;IT$w!*}y>M(p`Ahq$@Ig6TvS-`hKB`7JP<0t-mw zIu|9x-cmHa)cO2u5wTy#Yehl)MS(A5rkQizb&`=t@@8jnj42I{dGVT$xSBO2)%a(5*fyL?v;dqBGl6f45K4WlR1D{on{T zKDq!Y_^3cKMtj2!0TE)PAKcvuXFI$+pg5a!yrpx2W7mt2K6tB4+U)S@e!JVJv18AW zC&s}$?&A&nY`}7@cWAqu%Iqr{6S!+V3AC=?6Q4bu`Y3B}R%@ zkTdFhwLA-qTC#!r)!;wSHo*}cPtfC0j(K~CKcN!?H%_n!Uy zo$l%uss}{z-#(1m4?%CgB|y-P|LbskB-uy3wy{?9Jv9EkWW3L{%{#p%hv4%0fE&=@wx>*|Rp04FIfJTe3l@%owD-zIFSqYOfCGHt#9?jJraiFya zrsOCRdZtU=catT z%LYm2b$^SGpFfcE1EgCH20IyxMAe&dDGshS*kjP+bHEjDbq0k-?8K~4=fBQ8n~gJ# z7nDkwNDh;Vn~r?GfHYW9?THYgq%x}4>J(oK|K~7-H-f!vfqw)h8OfrUh2tK`=zW3h=5av6sK

Jm|F87{Td(v;Lq#u!a{m4Lo;AlpYgzsI&$4`EJcBM%zjJ6v}mX&#np5 zo!r)ZC3L^$b`Q=L!T}T{ACThxUCrbU=r|Elnw4K8maF?fdpOeLzL$T@xURJ+Y4t7m zT!}$#T*vT&1-rT{fbEu@gli5R?*c~e=YJTjop8xYUv`E~C4i}Ok$Oq3hLwk=<0XxO~(QP?I{e1{SbM=ri~>(|H~F0RiLcT1NV47ABW$p#W8!!O1%`px*k z3+}K=G2lzXwN9FB+49-k$=e-J)&8cumhI=lAY`l1(H` z9sSw=NLmDU=RUka}N|>B$e0gY7*n*PRg^C<#<-gL7l|9FosLcMR>P6$- zBxdGX43i`wscc9|(}hKnN~Nlia0!u9EwlzC*>m%hp3uu;*lqEFPy#xB54O=B5l{I% z??SDVPg)qO?Pfi?Lpp;`>YSYX#307|6d|e9yeki$=7*zLor=(&2;i4;tQ}{P!lw#4 z^3#cFmUjhdTh`J|y^BtxL^FYFGk_GaO*-X&WyM8wuskGd1@3QS%py@dTWjkqyv1}A zYt$`>5AI53te@MJYNy?x5x>5Bu8hI>^=)bDWbOKD&>++dsY5c?9(2rgG&B^d?Fv>y zH0i{*703&INegx6bUSGvMD&2yS(R;hR|cL23{)~Zc?3=GMw3_;cHOeJZmE8rvqBa( zvSuWqCp!sJUTqz;iP*&i>GIzD`NYPFbU0X<8yVLW`6+0JADHAuA%3VWaj~blv^!wU z3uTjt4x;)XH(n`l`pBXvG6Qa#y4i*1h0C)xT8%licz&(W$P$t@NHi;cV^ulb6wp@V z%65IemTsoKF%vKsLP1dD&*`n((U$QK1pGi+h8(J-NHm&?99TzA6f@ZcyIsn>bEc<7 z{IkL_HZHUJ;t-dy0qMRsku-T<;_05<YFh+n>`0Ul_k`D8 za8+}WAzXOtU_5re4l^^Ijp?T4#4aUle{`{oVx(ZPdTLz=6zJ3hLLBFa6s{)C9!Io4 zGQ3zB@$t3!@|#_W%HkoaC|bK=p)&h&>s}yGnCTZw>kck1F4oPLHdH2Ua$ur_=^GX` zZ3w(MV4~Z*b-GXN_PP&9Umvm2ECZW)wKh&=ctmz+)lR}Z-wp6w^IZ93H2z2Ey_1rJ z(z|-I`AmFaw7TlSgW`Ea`d$nljc>75pBa6at*cWP?#C$zp3l5STCY~|JXt@}BwR$# zOr|?^zrL|!^Q_Zj)P#4qHgO&-J(v>pla89(#qetEruj7DcXO6Kp9Yd?#50^FMepF2} zCjv%{22})$w&6Sq`T z-wn9>PdKZx0rBx=t)V^k zK*+79lLh(w^Y3B4Pcde`9MTWfc{zSn3AgbP)~Z#P#_9#1c2nOO4tZA5mpwc@R>rR> z#IV>43-+KUv>v(CU+CNi#`qU*+5@75XTPSVChWtDL#RlxaD4`@8Sp+awh)qc{pT2- zAGv@KeYx40Wvr8Dlh$3)rjiAKd;0YbozBe}GFh!|S~|u$-}_CayoSA zFw%#Ac%c;C|Lf*E8%yGm(wBeYaS#-7>nsS7lAiQE#Wi6g#0vkmAW+-@aNMa)4+p{z zmQhFBl+s%ikc~g-E13gh6#%ocibk4!1y1aqi>@G{;1vw0h)UcDg zyZh-9mny%OWWfko=m!4X+8OxEo@{WV9~g`(5d5HX3*6~%Af;^*!%oi!LQ{b@F&D1( z!J<2_pk=4t`8T)hbIc3}tnrQp(6tO`!3Hc5B(vyHGc&W^k&%(v&$`kEhK5h->PC73 zpo9|;w+g6ZSU%rWjyacCAPL=l^B<7;|BKfDes0;V8T&ZAW%|ws_lv6r3E_fw8L%+Q zE0BOz^(BU7rdg}L&s#vLav#O0xbD%EYt8{li3^Q#RNJM^^YHFAnXYJ&b)fA#-7%oA z+E;X{jT81kcg?vi0bTe(YVQoFw(6Gmhoa`g*BIfoL+rkSuV-M0ihqtvTw$lDgs0@t zcd9`Wge!pqmHEAAs9qtqF4_R}llOz#xvVDOuFrjK?|2;GsF11B zv~W*1e6}U1WD>6UPgUk~>dgz!5YNUM1X&)x4@pB?Q)>{5xIuKu>AzcjeCt4CBOE!r zj;1K}d4#QZLd~~T`-t$Ubc>tx8`@Zo)vmb(I@>@mzUS&D2Rf*Y-cJsNctl>9(Z3G* ze!N_RM&&lHf4xwmA0K&w!x=noR`Q1}BnhRgH;~o5l=;l3MR`ril!IVgtseh`{|OGT z(ZF&fXTwV-Lb_bv4eQ$5gS#+o__gVZ!O_fx;TT`W(uOlO5zI6&uKox97r4rQDUgG{ z{H~=)+-=P5@vY`fd2wq64bHAMLg$|xDQc*x@tC@`x7QNKcK!|YoxAz*>ZI7>{Y@#Z z?qrPxS<`Z2Ja(PK)Hd>xw`+#1=zu4B%{67P(wB@aKmXyvUCv7wZyuOS& zVJmAb8h{A7$39)3R9#oci$vD+>(@Z}m~gG{A6&nk{qJ1AatVO{K1VQe3I-s(`p17l z`nCAnIKRB$z6hyRpY70|Gh2DYFR)smepL%wrNMNsrd+8}YsApj8}Y^TqQC$!;RG-h zkI{11)jtktZ{`|UrP&(Y1yjrO&dUU3zmyJtZu;Kl|^cP@RYZqwDW7r;kD}3-J-n> zgQOSCL8QOJPp~`juu?5uU}3|;>~ejEsQf*DgNG@08S4=vcDNRv+iGd`)y~4wu9j0@ zCiB<@_2CkmR{Xmay1r5_?sMtsyfD^m%xu`nfu}11&;mh?6c9(@cS2hqk zO_pxT=q+MJc5iO-!vk|wGTKbXXO zyWnxXsF4}IfxAZH7cdRxJrcs`vmWzU8KWadP=mfi9!q(b@JJ?Q4 z5p{lo!oA?@8eGXM&CjD4S0Q@g-jH9jjXNi_t;U^hyV@|{(bUzFV2oQS4_L~an@AzO zn7{EfR#4c4=bnUn@}KHWxW6b{<*e;c8mCK2aAz$A&xO#wN7^~o<>RQQu~W`JWpEd9 z$#5{NQcAmdQ$C?yv@gbLVwOTW=F&5t;X0(O;)86AKNi`-IwkJESEIfbU#|GoT$w>! z?n`%@(Lf}ckdCf@Wk;TfDWHPWF^*k>UJJtmv(c&Q*5S1kzapFNtAYh4Bk zP5=Hp33m|UH)m<2bv-J3rwBj~MkX=t_(e$KKmTmjPS z_?b}k8MIC`DDJl;%k8yDhyu)-S0Du`5!_2MU^~tvt} zX<6esxJzyoLUY}+az&BU#2raRbAkKizWD#&+?V%V!{@^X`0-uOdCqgrbM9Ppaoo2@ zWe)^F`_4Jp{RlzQDG(&Z-MtGuIoUfh2|jkjoIU5U8@!0SgUR6cw~$< zZu2Y*Jaom|d*j`4SMl*zqC+6;6@27%9R7M3=5Sm{bW9j7;;@mSk>QExAf#a=E(ULc zG}Q~eddesSV~z>Fs(<(z9v^9eK>YtSLtJzy!pkid?4z{foZT6ZguI2(q`UWbHn$1J zhCanU{G>jK-51K>c*v^555l5~)!(G;&JDhM1h12(|3qDfcErd*TjzOkMou1@qh`QV z*;iK6`4V{!4~OgLOd2Rn?U8HPt6%mfPjn`auvXQSc;)^WZ+W1gx+kV!OatE&PhCd! z99K+l$3W0s2OqRN1hsuR21!A`!BQaTuidAil;9nQq0>gv`=P^!q;^AhGoT%ilLI6T zeRuS07*_0$mR}0!9~n`zjGHHyl$7Ww?!j8gL6ItH?HCgi6Gn=ZOktTmujPc)y4?IA z?Py79DLYXX;_7eB1&Y(o{9{+`Dja(jYLU5g=@Kkz#pd@4{}*)v6R2(Gd1WPKc6RpN zT!Mr2lDe6&4mVKYzwhV;^An4Aw|L1@#DHIEAsb)q?Q|9@IO^=|+zW2r*VpIf=GNOk z0p(q!S|?#T9vBFOY~0?{POr`#=6Uy1vZXkdO_ow$24x0!%?eL33$~rHR=aB67FF5G z&T|^eSr8YsKZWNr%3;E*rx8)pkuhkBv;qFQml8=dd=0kyZpxZ=Pqo!%E<=<5L#mu9 z+j!sITVEH@zMhc!`=b03i?`QUpFefD(mTt1sxf^fmv~`?@eyl_qsX5>PYyN{ z;?b072hR$>Lt|T0rhsO+R(6nd=%<{}f;+Y00|odT8|(#O{m zw^bv^j+#j|?Q5-DpAf8=9xE@pzn7P?d+~)kr4@AD?_KiXa|4x>o@8OQpob({zQxYA zBE+FqKe*E_zr5Kn^(efsxcK}2G9QJ^%uF{lTGcBsDfUA4i6f`5!ydk&Jq1=s9H$9x zeD#8?>M8w*=GFd$nWqnZQ4v@yw#=KRwfKVH0=Fh6=zIV9d*6c1#&l5>OFf3i=V2q0knNZYG|OdRp3imK}Q4)M5hD_L>}V8x)$Y$P&nevnM|uKnp!hNg{m z1%0*zZXO*x5iwY-h9fpT6t@WOx{|DpSte- z;ll?;RY-?#8T*mM5>FSL^URQ*l>tfbKHc!!aX7Lc7=YS-9?`5gCKA?96lrc>yHJ2? zY)Aj2!;h%~3v6xplo=l1OHdUX=mr6D$gapTs91 zqsAH8rnmropQ_1QJwxwZZPX{2ndw(v-)Ey|iv>;ZNcSGcr3{}&`h7d|S7r;`vIdL_OOwLlbWIj1}&!sVc zuHuEEl7X)x3^ou*N?Ms8GTtQ%-!CyNnGD=yV!i%So(a|sTH?MGJeE(=NnR<^yx*@0 zkXRPjYORsH{_&j!45lesN}YI|s-Zi|sR}u7rTDkp!yuE%W|7>}WqyrD^tc6I-%9@%ame_^k!u5s z)0LyH$)E2%UFgm+)?RE{?pAV(pDV9_&?1^~CHZb7u1xp3=_q3U`t2ApyuZwoS~)yC z42*7&5075%GGz%D*b|~nJ|$4RG4L#req)COh|G*b3LzolWrtT?rekXIHd~RU9Tn($ zL&Mgs&p&S2+m#YVePb4C2OhL6_7*vMT)I@-z#mUXWRZ&qqFwSDYA_fD_1Os}91Nm? z+nC{}FG}heL;7@~62%gn$g@6vbD^H~*fw?i7v%t*UjpnH>4+BiC_Oe^Q@qZS1QbC{ zPgfW7`u4u3kQ#`c<037sik6Mp=VfIX5=Y`ljqH3^5qC84mn#-{-I7WIXws;UNoU6A4d#-v+#V& z_=u<%g@syj8Ys9UD2*b9UZ=`C0?tE^tdVe3r)Mttz9WWudf`!HwB1&9qahs++Pzvg z`m)WUF#6~^{RfCZjUq=%mTjtBZ9<+{Jxq)SrCQUMsazUKEK*wI57+8h#Lg<_Tg0Y; z*mJbExA*Yyumd#Z_w%Rw+QbnJt3(Dpb`CT9;Sa&9y$Hs1Z&A?Xn_nemm=bL0Q8~Jv z`P{9j5G+Q!)?2vVSDAb;hSzPi7;1hMFgq|?5hyF$^Grt~Z9DVKtNUV8h!Qp)26R0< zF1)=@bsU6G;6EQe)U2NmdFZcXv-MHFh(@C+X7OgTYqSdzw2EEwRqDr*2{SEpI=x}? zxAQLH+tjT|Z9$uiJR{ST0|)#}op^U10U&zB_O_j^t!?L{lX@0$^9c^dt26Jl7h5(L z8#WhT6jf9hS})y@XW&Si>}->;A6I7k^a8*&0c%c1%~@^ESNFb%=SyO6rsbfXXI`Y` z_Qqsr+t~nf*CqOrfH;4~9h094)=RecW~iLh6^Yhb9qky{`cWnD&(+RsH@fF#cXxM`XnjI3m5VD_67*O2tCF_o0?*e| z7LHj7nl>eMtCg;0Uay7wGnY)lVx#tka6#4fw(K1c z8_fBkYP5eH@UUR=o-0%0zN!wx^yBWuj6Cxgt?}u$Xi>pF4V+32V~>m4N_$jGH_6`X;eAvjO~> z4N((?RaHhnc}xKIq#%eN_qw^e1Cj@a$fS_ACZa}T2P7+jQB{g83GJdI8jn>peg4<< zSStyzsbR~?Q$#*~kx%4V3UYdg-#cWg9JC?`GXOH-NQ~X}kp@8qRfhY@L#JRC^JCt{ zq@*PLT)zP)ajtwK>x+59(q&1eGi;pvZ6YhMgw2K%gr@mDZXf?CvD%GMOKRdvagnz^ zlbNYn1W5d;!U>lF;~ta(_@243u`!XQO?)P&X{{#7Vv^{Jja>~Ze~)i4&)V92r(b>? zp_eWv7Rf}g>#%};G_JkvhD;Hlk7vaBsi~>KIxKpAtkuS_Wqtg4Nr^>74loq64$Cf# z=W~#k+ftOqN=r-A!9H-KV5gZ2#rs2goResF6g_bk3@fUmCxM9i)@ zKG73VvlQW>qd2||NI%SAbD1heNyre6N{Ezjl%TdU$p8RbDApjsU<<>wmJ5wqSzE$#o|H5&Vbsaa>I3Pe2+)lXbv;{w zd)UtO2tZ%OsvCDq@3tp9n(?!t>Y4Q_Lpx4wg&9moQzuF_CmMNlQ16~Hn+kitI= zY709%4==BJ!FNzw&QI5_kt0Uwk{(#$#m>A|{>7M>nE$lNN=gbZ>eQ^7L2Y3=O6k3C y-|m+*q^hd&9AE#Z=@oqy0iDKtU2Vr4@vcO+p<3`zz-7>ChR)f$*j1dpeDmK*TgN2; literal 5757 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 From b7621c0af6c12ff9634a2ac3131637aa51745843 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Tue, 20 Mar 2018 00:57:19 -0400 Subject: [PATCH 12/15] refactored code --- lib/matplotlib/legend.py | 8 ++- lib/matplotlib/legend_handler.py | 68 +++++++++++++++----------- tutorials/intermediate/legend_guide.py | 3 +- 3 files changed, 43 insertions(+), 36 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 13fbe55a8095..36f21e0ed112 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -947,11 +947,9 @@ def _init_legend_box(self, handles, labels, markerfirst=True): minimumdescent=True) # if handle is larger than width and height get new width and # height to fit handle else keep width and height - da_width, da_height = handler._scale_dimensions(self, - width, height, - orig_handle) - handlebox = DrawingArea(width=da_width, - height=da_height, + + handlebox = DrawingArea(width=width, + height=height, xdescent=0., ydescent=descent) text_list.append(textbox._text) diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index ddef425f41ab..9084d0d26e75 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -88,27 +88,25 @@ def adjust_drawing_area(self, legend, orig_handle, height = height - self._ypad * fontsize return xdescent, ydescent, width, height - def _scale_dimensions(self, legend, width, height, orig_handle): + def _scale_dimensions(self, legend, handlebox, orig_handle): ''' - Return (width, height) where - width is the larger of input width or width of orig_handle and - height is the larger of input height or height or orig_handle + Scales up handlebox dimensions to fit orig_handle Parameters ---------- legend : :class:`matplotlib.legend.Legend` instance The legend that will contain the orig_handle - width : number - The width that is being compared to width of orig_handle. - height : number - The height that is being compared to height of orig_handle. + handlebox: :class:`matplotlib.offsetbox.DrawingArea` + The drawing area that is to be scaled orig_handle : :class:`matplotlib.artist.Artist` or similar The object that the output width and height must be large enough to fit. ''' - return (max(width, self.handle_width(legend, orig_handle)), - max(height, self.handle_height(legend, orig_handle))) + width = max(handlebox.width, self.handle_width(legend, orig_handle)) + height = max(handlebox.height, self.handle_height(legend, orig_handle)) + handlebox.set_width(width) + handlebox.set_height(height) def handle_width(self, legend, orig_handle): ''' @@ -163,6 +161,7 @@ def legend_artist(self, legend, orig_handle, be added to this handlebox inside this method. """ + self._scale_dimensions(legend, handlebox, orig_handle) xdescent, ydescent, width, height = self.adjust_drawing_area( legend, orig_handle, handlebox.xdescent, handlebox.ydescent, @@ -171,7 +170,6 @@ def legend_artist(self, legend, orig_handle, artists = self.create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, handlebox.get_transform()) - # create_artists will return a list of artists. for a in artists: handlebox.add_artist(a) @@ -297,13 +295,13 @@ def handle_width(self, legend, orig_handle): enough to fit. ''' - if isinstance(orig_handle, Line2D): - marker = orig_handle.get_marker() - marker_size = orig_handle.get_markersize() - if marker and marker_size > 0: - if legend.markerscale != 1: - marker_size = marker_size * legend.markerscale - return marker_size + + marker = orig_handle.get_marker() + marker_size = orig_handle.get_markersize() + if marker and marker_size > 0: + if legend.markerscale != 1: + marker_size = marker_size * legend.markerscale + return marker_size return -1 def handle_height(self, legend, orig_handle): @@ -321,13 +319,13 @@ def handle_height(self, legend, orig_handle): enough to fit. ''' - if isinstance(orig_handle, Line2D): - marker = orig_handle.get_marker() - marker_size = orig_handle.get_markersize() - if marker and marker_size > 0: - if legend.markerscale != 1: - marker_size = marker_size * legend.markerscale - return marker_size + + marker = orig_handle.get_marker() + marker_size = orig_handle.get_markersize() + if marker and marker_size > 0: + if legend.markerscale != 1: + marker_size = marker_size * legend.markerscale + return marker_size return -1 def create_artists(self, legend, orig_handle, @@ -411,6 +409,12 @@ class HandlerLineCollection(HandlerLine2D): """ Handler for `.LineCollection` instances. """ + def handle_width(self, legend, orig_handle): + return -1 + + def handle_height(self, legend, orig_handle): + return -1 + def get_numpoints(self, legend): if self._numpoints is None: return legend.scatterpoints @@ -543,6 +547,12 @@ class HandlerErrorbar(HandlerLine2D): """ Handler for Errorbars. """ + def handle_width(self, legend, orig_handle): + return -1 + + def handle_height(self, legend, orig_handle): + return -1 + def __init__(self, xerr_size=0.5, yerr_size=None, marker_pad=0.3, numpoints=None, **kw): @@ -605,8 +615,8 @@ def create_artists(self, legend, orig_handle, handle_caplines = [] if orig_handle.has_xerr: - verts = [ ((x - xerr_size, y), (x + xerr_size, y)) - for x, y in zip(xdata_marker, ydata_marker)] + verts = [((x - xerr_size, y), (x + xerr_size, y)) + for x, y in zip(xdata_marker, ydata_marker)] coll = mcoll.LineCollection(verts) self.update_prop(coll, barlinecols[0], legend) handle_barlinecols.append(coll) @@ -623,8 +633,8 @@ def create_artists(self, legend, orig_handle, handle_caplines.append(capline_right) if orig_handle.has_yerr: - verts = [ ((x, y - yerr_size), (x, y + yerr_size)) - for x, y in zip(xdata_marker, ydata_marker)] + verts = [((x, y - yerr_size), (x, y + yerr_size)) + for x, y in zip(xdata_marker, ydata_marker)] coll = mcoll.LineCollection(verts) self.update_prop(coll, barlinecols[0], legend) handle_barlinecols.append(coll) diff --git a/tutorials/intermediate/legend_guide.py b/tutorials/intermediate/legend_guide.py index 7f366d18c52e..f8ac59143609 100644 --- a/tutorials/intermediate/legend_guide.py +++ b/tutorials/intermediate/legend_guide.py @@ -234,7 +234,6 @@ # single artist for the legend to use. Signature details about the "legend_artist" # are documented at :meth:`~matplotlib.legend_handler.HandlerBase.legend_artist`. -from matplotlib.legend_handler import HandlerBase import matplotlib.patches as mpatches @@ -242,7 +241,7 @@ class AnyObject(object): pass -class AnyObjectHandler(HandlerBase): +class AnyObjectHandler(object): def legend_artist(self, legend, orig_handle, fontsize, handlebox): x0, y0 = handlebox.xdescent, handlebox.ydescent width, height = handlebox.width, handlebox.height From 3b55f20bbcb1a8768ab56041e896bceaf9a90713 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Tue, 20 Mar 2018 01:49:48 -0400 Subject: [PATCH 13/15] fixed comment --- lib/matplotlib/legend.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 36f21e0ed112..8bb7986815f8 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -945,9 +945,6 @@ def _init_legend_box(self, handles, labels, markerfirst=True): textbox = TextArea(lab, textprops=label_prop, multilinebaseline=True, minimumdescent=True) - # if handle is larger than width and height get new width and - # height to fit handle else keep width and height - handlebox = DrawingArea(width=width, height=height, xdescent=0., ydescent=descent) From 1a449e5222fe178cef57bdb61527ff12026caff1 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Sun, 25 Mar 2018 17:32:42 -0400 Subject: [PATCH 14/15] added scalehandlebox legend param --- lib/matplotlib/legend.py | 31 ++++++++++++++++++++++++++++--- lib/matplotlib/legend_handler.py | 3 ++- lib/matplotlib/rcsetup.py | 2 ++ matplotlibrc.template | 1 + 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 8bb7986815f8..6450ecef1555 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -248,12 +248,23 @@ def _update_bbox_to_anchor(self, loc_in_canvas): Default is ``None``, which will take the value from :rc:`legend.labelspacing`. +scalehandlebox : None or bool + Control whether to scale each individual handlebox up to fit it's handle. + Default is ``None``, which will take the value from + :rc:`legend.scalehandlebox`. + handlelength : float or None The length of the legend handles. Measured in font-size units. Default is ``None``, which will take the value from :rc:`legend.handlelength`. +handleheight : float or None + The height of the legend handles. + Measured in font-size units. + Default is ``None``, which will take the value from + :rc:`legend.handleheight`. + handletextpad : float or None The pad between the legend handle and text. Measured in font-size units. @@ -321,6 +332,7 @@ def __init__(self, parent, handles, labels, borderpad=None, # the whitespace inside the legend border labelspacing=None, # the vertical space between the legend # entries + scalehandlebox=None, # scale handlebox to fit handle handlelength=None, # the length of the legend handles handleheight=None, # the height of the legend handles handletextpad=None, # the pad between the legend handle @@ -503,12 +515,25 @@ def __init__(self, parent, handles, labels, Default is ``None``, which will take the value from :rc:`legend.labelspacing`. + scalehandlebox : None or bool + Control whether to scale each individual handlebox up to fit + it's handle. + Default is ``None``, which will take the value from + :rc:`legend.scalehandlebox`. + handlelength : float or None The length of the legend handles. Measured in font-size units. Default is ``None``, which will take the value from :rc:`legend.handlelength`. + handleheight : float or None + The height of the legend handles. + Measured in font-size units. + Default is ``None``, which will take the value from + :rc:`legend.handleheight`. + + handletextpad : float or None The pad between the legend handle and text. Measured in font-size units. @@ -574,9 +599,9 @@ def __init__(self, parent, handles, labels, locals_view = locals() for name in ["numpoints", "markerscale", "shadow", "columnspacing", - "scatterpoints", "handleheight", 'borderpad', - 'labelspacing', 'handlelength', 'handletextpad', - 'borderaxespad']: + "scatterpoints", "scalehandlebox", "handleheight", + 'handlelength', 'borderpad', 'labelspacing', + 'handletextpad', 'borderaxespad']: if locals_view[name] is None: value = rcParams["legend." + name] else: diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py index 9084d0d26e75..0d7c3941adb1 100644 --- a/lib/matplotlib/legend_handler.py +++ b/lib/matplotlib/legend_handler.py @@ -161,7 +161,8 @@ def legend_artist(self, legend, orig_handle, be added to this handlebox inside this method. """ - self._scale_dimensions(legend, handlebox, orig_handle) + if legend.scalehandlebox: + self._scale_dimensions(legend, handlebox, orig_handle) xdescent, ydescent, width, height = self.adjust_drawing_area( legend, orig_handle, handlebox.xdescent, handlebox.ydescent, diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index a4c86779ba4e..79b1fb7414d3 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -1185,6 +1185,8 @@ def _validate_linestyle(ls): 'legend.borderpad': [0.4, validate_float], # units are fontsize # the vertical space between the legend entries 'legend.labelspacing': [0.5, validate_float], + # whether or not to scale handlebox to fit handle + 'legend.scalehandlebox': [True, validate_bool], # the length of the legend lines 'legend.handlelength': [2., validate_float], # the length of the legend lines diff --git a/matplotlibrc.template b/matplotlibrc.template index 689bfdf0282c..ea0fe164b65e 100644 --- a/matplotlibrc.template +++ b/matplotlibrc.template @@ -416,6 +416,7 @@ backend : $TEMPLATE_BACKEND ## Dimensions as fraction of fontsize: #legend.borderpad : 0.4 ## border whitespace #legend.labelspacing : 0.5 ## the vertical space between the legend entries +#legend.scalehandlebox : True ## whether or not to scale handlebox to fit handle #legend.handlelength : 2.0 ## the length of the legend lines #legend.handleheight : 0.7 ## the height of the legend handle #legend.handletextpad : 0.8 ## the space between the legend line and legend text From 4272d31ea1b68bafbdd1d7378b56bfccf4015398 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Sun, 25 Mar 2018 17:55:12 -0400 Subject: [PATCH 15/15] fixed spacing --- lib/matplotlib/legend.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index d2cd3900298b..a8fd08d0b03b 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -328,7 +328,7 @@ def __init__(self, parent, handles, labels, borderpad=None, # the whitespace inside the legend border labelspacing=None, # the vertical space between the legend # entries - scalehandlebox=None, # scale handlebox to fit handle + scalehandlebox=None, # scale handlebox to fit handle handlelength=None, # the length of the legend handles handleheight=None, # the height of the legend handles handletextpad=None, # the pad between the legend handle @@ -372,10 +372,8 @@ def __init__(self, parent, handles, labels, Other Parameters ---------------- - %(_legend_kw_doc)s - Notes -----

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 literal 18646 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 Ut$*?y%rlC9O!;WS;R}EKA2iK5yZ`_I From fac65ff59ac2bedc5819e6d3303d0ea5a8381a17 Mon Sep 17 00:00:00 2001 From: Silviu Draghici Date: Thu, 15 Mar 2018 21:38:03 -0400 Subject: [PATCH 11/15] updated baselineimages --- .../legend_large_marker_in_tuple.png | Bin 5591 -> 5608 bytes .../test_legend/legend_large_markers.png | Bin 8833 -> 8820 bytes .../test_legend/legend_large_markerscale.png | Bin 5757 -> 5821 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_large_marker_in_tuple.png index 6c3c9d9ccf8ecbd7b5d4ff1c2bf54be05f3faf11..cd2e2ebccb8c13ec13ad5a21abf0c556198aec0f 100644 GIT binary patch literal 5608 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 diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_large_markers.png index 7d7811b8401cf6dd9ca5c9469d147bc4844e5367..0cfda41585f44dfe1a623134b849b8313ebc937d 100644 GIT binary patch literal 8820 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