~-DEr!=?3*QCIf1ojHV3dX^2Jw0!AUms zX5dU8t#L1&PwoiHfSLxXi#p{t(?DzIBqH@)C>NKD}CI6x|@OhnTOQOjN5wJM_;~PetVtvQl z2u=xnhFz7@f8H5%#T>YImfrmmZT0I|eP9dyg_z^-l!YmO$+4GlxK@IVfs-D-ctCb{ zwmSR5p3Eybc`GD7)GWPP_S0T49m~D3RD)L3*~aoT_UMN4X9Nj2eeDXwQ)k=a0tRmS zl(>%mxJAi*t+vD^Dpx9KyV2~0*FfiOnxF4VxbDUN^D%3L$+&VGK?seY#5D%z&9jp$ z (c9dKsmbkocn1SRnWh`F~c z42r u2aeRnNiZOD!;P%&qnB#fY97Hp~Y6wI?rMpmp z*ZEVXHc_GtpiTxy^5hCs2-Z12Gk%U_yv>dh{D*9=e$gKb$6*fE3XY*B%9#%b(gHV6 zOlo`b`sj!dh4tltz#=aUm`*ZUQ_qd7UCtnw &YdQcEvBClW ze6oF4`R`|`jL$CfHwY$)hie}h9>^5LT7uoEhw3}Py4zMsj6b!wzN)1`t!CtDB|Hge z{=`)+T4iu=W9;5qY$9|KE-~0iE66)-<5VQ)J){vwlN`VxSC{6v}WZ9OG3@Ej82UYNq+LK*hTeXxw@#CT`UGPeBL@v#cJ z(?6$GZy6m}t9K(Dkq;9tKV>D^mu2N10a3Lp0b7Sl5KyIkUc3S^q>PxcJ`BwX3&a;* zV5(&}yzGDqxn4{UibhP(${Wgw`gxt )ITkGrj@q;6V}_mbrqM#yh}E z%!!5V-%420a5k?wdmv}EN>R`YNLnQC1`Wc`f}YXO!kfv+5_bEzL;g%EB6tI zW|s2kd`5U2KW@}tf^sjy4Q7P?#g@rp9Pl~|n3F`I9<8mTb8kL&JUi*1%b;;nPJS+? z3^w^1qFb-0L<8$S-{;7Vyw!08Jt#odtvJ$xw8gbQKgyHc{$g+*6l?zh3$XM+Qc4!6 zvEUStk)Y@6Z@hj%Vs-ubewXSBD9n(Cp|DQ?SwSZep?I|C=k=wil!m{o0U({s>r`86 z4BHK4z{i|C`Nb6b1FG+3;IcA6C85cM?L}>$5|{i%p|BRF;AJFyOkznA*d~xVfOeX^ z5Y+_x@fiOn$qT>~+UvMnbpU|SfC3Q$@`f$T_>VyR@%6v9!8@^&3+0u77L=Ln-Po)y zf5&J0)48j+I?@Q23SMI{1R9Uj E+#X|MXlKz`_5)|Q}0xzb~P#+LU9|C9jA`}=UhRr~OF zhf5=bZy7@AL)g9r(u8t8)AV6Eaq1W+6kC8+a^9VNa5KRr8j_+mR=DfJbKXg@^K<1M z0k5QIuz~CKUuCI5_7I7lymCikb5959An^ZbzH9I?q{}#sAmGtQoXDuVa(3RaeEF2w zn2(Q7MrLMVFg|U}pD4e|mbXE~EQc9_mU}wb`>Zw8!umj!hxrk6+p#j3vPDfTXT1*a zwO*TWccDXhEV)M=Bs&c9V#PXjjrRk%Toho5Lf8H(#$Dy1&yQSO7ba&%ing(JgB`d{ zAxUAUdf#UI6#tu0=D%_jh|(hXB5UsHHLx>g_V_owb3l^rTVk$cZ=$|5D4wD2jq$ye z|M0yHG6+`0liiuqryJIv;}3pcYTU(Q(Ff(=O@(h=V)2(6{_c1}Ebo8gt-Vu lb1_jDbTo2DT>j3ga`7}& ;`xI2pZ zQ{H|jimyC?$)ku5i%Yn=4)hJgoLR%c@ }z7jGJ zq=DU@ydBXHI_CxY?<9M#TRhqo4b_5SmaRhae34GSnv;0`({}-O4OMd|b)E$XogeDa zp#AxQ&-%^qasUeK8PI$>RogfM1*Z+9Ot@=Ru&z5`yE1>I0t5=GLj&-~I6H~VCzDZ& zwc}8VIjor|@L+uk)BM2&acG}pL*tx@Zf&}}NSOu^yNE#(KBJ!8HsEtdIqKxMDgWFs zE>rU*0%Dq7>U=Wnd=PeLCr8v;s~;AY&;C-sV(jDttf)|!rLB R z<`-WjoO(MU1|1G)2#><1f--ujLhj><9^J5O{*F$wm0@q@@R+C{)SF`Kdt~VGt&a1K zPGz~dxo4E4R!D*J(QCeCba~^84Yh&z5mY|D@H$<9zW5WSt7O`htIxXqH7O?WJ49xp zNri94;UDT_ZxxC_3mVg9w~Xh8QJMAU6wLAIxGh}22=I#X;1y9!&o8zTC=ZW&@=9z! ze}#GAJYBAjMyz7AkdF}uL!mK$AY6?;@&>9EqOJktZg%`o6Q0xCGUdvfu#>gctf;#c zcpgq*33uR jyu`;)}}Z5mqoQ9Xj5>t^P% z)#;p0_|sbKJ;d@P?d1WKuxH?N#i(3*2N)$vP()tV+a3V--cF{pz2+3Kzeb!M4uKv6 zyoEY&3%x*39z*)0of#r>a|Gye#x(X6?YM*O^YNwaH7-c2oF=H$$b3BELX ~_q*_i@_DQcQk5jB&A>J*eGP!%GX zrsyn*2kn!Xd7ZmhGVm5scy8adi?C~l 3cDO>|DyoOAt6Q*G;Z>2&Iqr*Q0Ts8OH^j4S?fH@s+vcQ z2{!gd2r+p}eRBKjHwMRkC^{S0IXcl(nM3B32iy`tD#NIqe?Rr>%eO&V6L4Jx-)eY4 zIEx05b-5}FCEqtMNSmXX%T?G;f}tABaB|t1!6pNz!1Ac-vplQgszq++$vb{{1g0Q} zo3QSTjEuJtPB*i}_phY83Q^uWFa5Q_n#<9@FBuuY7*uvgSR=XhC*q*nrnId#l@jAO z0(p$Vw3b&KwgE`#RVu>OHugU6+h$W2#swlBJkE%|hQJ8~7y|qRR6TfG?oM{)X`qs> zPNepOmT)B#x6jPXy*1Y?19<7us>zOYN>!fw1~`kc5dQ(9B7xAt4T%le))HH*uau~w zEV&g43&Pc3SG=NC1<##*uW{Iwot~Qu NSWsWPFF8`k}R)6i{} zrTmt}c@zgs4&P!1j#f^~q$hi86QZm8AwGr#E0|->w>N&ojwY}YJxx;Vul0X@-tib; z)f=z#w76JhCB^-ey`b~@lfEVVDV=~QPN-iD;8%*OyIY8=Ysq>_ekdrgJz(1tUq`uS zV~a?ua_Hea0Tgihi0x`BoE9$jjpH_e1$$&eJM4Vo-m=Ip0kB!c*7i`@eyMwR%BbYJ zWz==}V4V2N6zs@@7JisRG+(P)YG(-C0Whkd0e%s@td-FMtPWtqBqR=7rgD@WSAbzp z_@9;AahpPm1_-Sdlbb+eVm`5&^Gm?}vRDULU;m+iP}+2t+wC{7)AvgDn4hZf9Q2h^ zu}cKygtD66A&?)szAQhq6{vG`I{ TtDqEhdx!I>&H3y!Pak`QyXHa>StkfxCXLCQ`|O=n9{+azt(F(HcO zmT2A6Jp@djIfs+YK;|i%;Hc`pceJ)?3CfAVlG{QE#&v)DKVV$PywI6MK}vg +4ED<|el^;G@c`i%o1?zodN9K<*)madfwm10STfN26l_XXui#lu#CH8qib>ZqC zZ(_-L&oNR`IkCDZ#Mk9GQ9jyje;G!e<)Zee{-@U#e6f*Xz2ogXZX@9^OPZ87n|bY4 zQSb>`RSU)Oe)Gz&THwyh1Z`Et4wLj^nF^PH&eJ|zod}#~H0m-QnvZnFDrL03rJYxv zn3Mt#t_woP5K2)Pz565v$@{XQl@?opEwBWiNP(Ui-ZAjhAy`mc73oHlV#X^FoIu*@ z!K@Clls>`G^$&@Q?wYm+o{EtV6jjFL-$EiT>Tx|ISg^iD!5T#!x8l 7H9CGLTO5PuN7WYgJ|@P)5!k7PjsWJ5uuNvUENvtdtNFgd*a83&&`JbP>!yO) z;kYQYIFdJe>spSbccd@7 xKtM$`7Pz-`TURGR4Z z1*K1j@vku~EkyC;sZP;YMF}65Dn0>O)KWrv?3(G1w-~GTbe`T|y6|1n@Icfevo^%D z{rp&V|G+>rxu }zWX>(ivOV`-q`X|S>x}1FKm!v@2mx9;xVPL zr)w$hL(8QODMx}wWw^Kg%FpRX7_sKrGJ(f>$o~*)|6;w7S)S)oJ7dU7VJciFcc;?j z+DZ|(Kj}-9->AmN>MyjHz8416jkqJ?ysMZ!+Lg?n@)p{<5N5Z)!r8$lZho=*eZY_K zZe%+lEN~S6*_TC9s$}e+@8Vw2m yB%vc f Z%#z%m55j zl@sGhSk(qpODxPn84w&d0KLPH0O>(%f}-uGXR0Z64C&BxsApr*=0UY{%ymD o0wbE1X2keM|9Z0A?y~dzrX97y}2pnHKx8tav-?MoMgF43! z9)0r?5cz;ygcU2|W9 -;JFi@+} X``Hbz zh0HA71~f-M)&8W2)TE_ {kXgyx@ zvy Z=; z5mI_1G?&?Zy)qULw(?z;%!nDsoB%yr_ jU8!_tvgLVr=k?`amP*JY75Z7b@`4GH8atH*5RuN9I?E;u?scWD!eOf14PTt z(~o#@5TipB5ZQpPnldZXvAi_^E#l2(dS!v 1k>s z1+; { zJ1BVT1;Y#nn-5+R_%G&qlaSTG&jdJWH&^lj>n1Ns2{(i N{T){uLiJmH=fsox5X^t+`Dqod}+Mc{Kre)F7 zETK?4ygRfqWp!EVvo+0jD<17E6S*co+clVm!MU-n!Lp=EQsc#he!);aN%o2krs?H! zlxlD7?keLpY5 _niSc%l0(sEx&X z1SdZBOxD8l#8Fe0b@&=@cmxBd?LzYDf}lHJ`Ec4Mb_*om?jxj5F{Lm~`C02~vkmP0 z)1^fqH}(&tdaKG*$4W*smR>#FQAh&m2b4vg)LpeH>`{@_canB^XZ#?krzwLmcoUfB zzPHni!<5PCz4#@N&%U^K!S;{Te1BoOpbJAPYlE@&shC)}hHG$bPt&H^&U$2{a{4S} z#Q@n8=@-BVf$ZtM 0lo`2HdAco*L`J4c#;B_90Vd5FwN4|` gzjJe;L +Yjgqx 6q@%zd8;>CE&p-c!%sWanIUo{)eL%|MqM?>zd^gykTVw_@*#7 zLOJ9&nU8KBU=Dvl+Ae N}pfbYhnL8hPu{9U(-5;6e7!DK~hdmDnfhG2rq z`-~C-V)9W|b#_5+iM1=L^YRk*Tzl5XO09L`fsa7hAH?)=V62iPE}%97)8y=sUVc;s zcetqP=dY1(rC#q@PXed^fVVh8kishkuE)#OpL5(Tc%U+H<_vtY9siW|HW>hdOTK%! z+8sFS7o%0Ctd051b)V{?W~swm7#3>Q$PdLVdRyFxm^y`ZE2<|xyil9YdOlLPT&-vo zR)~>H_gg)(a?T2dU1JP?Ey4T^*Z=YKd=F$ak6_=`SIMo?bZ2_$RtRel8-&9QoW2;< z@98!?U=8VDboq)UqsVUr#mZPafKgCe8Zlx3Hc2Y?liw&mpA}kc3KDW}V+!89A;O?< z2~M})Bd@(LXt}@9pc#X-sK&?j_CkX)8;kq7<72_M gzvO{+ruqqS!6x zedKO|O> 2)ul#jhTOi*&$tVvKTcB?ikajFiQt-1aLH65Cfb@RR5!lOk*2i78dBgb+d=R zzs1ZnrT>^|2G6YDoJ
=cjWjj3mHR48t#9oNy+;=Oruxi1H 9*KTsvQ+Ao3_ z#$gk{N8Nl$O9+(EW8qw70h6Qx%EIq&rTj3`1Gdh~U?EorFF6cu8FZO#o3|@HbZs%5ku_8lHBFtO5u;zQ#P~Co|hi#YpIQY^BPnw&v z_^@zr0eB9~O1UU^s4e+h4zHr}!tXa^z~Eg)hmf~?(1S%PeBM8d2=U1w7lPi@;IUnf zwx@?zHm@AS*s+=I&QgNDz>Q~nDRe!>j4?1ra#!Q@jtDp{rM_b>3HFx5fE6q_>e14x z0gv#<@gh$*Vdg|dV8!$d<6$xqh$wK~ps5=ehm?&*K5SsPjkEpZ+&4S`TV(bqgmp8r zt#!MAe`UTA+-`>8XfWSSf7JLgr@;&lniFb&OC!ExLBu46MxRDs0+XA_OcSmDG8Gx? z7yVE95#I$t<;>agPY7f7nd0UK-!b&kxBaZBbn(Unp&Pxiwq8vz;v#Yk*q*L$1Qh`L zvh3Oz>Qij;D-Ky3ehu)FD^E)|-|=pu!+-&q0W&O#oOOtXMn7A$G6oQB5xb=x6a(%U zDCt-aYsH(o3(i%%&3A!#rC2QKVqTh)4Bz#e-Fr;RqW+aI %j^CrCtmS3@U1+P}I(E!JHg5IJ?I`pBGZZTw&6j{NDp;$Q1grlqbnB(g|6c ziUvT0ay(sstA(a>P`QfvEk+k|U~hg=@NePtj$w{LytHV<2I%gsvlaX)F_2=xv;*d| zQep_b-uEt*Tw4$Qr#u7#MzOZ}vW#C+6TE^)ieR2krntNc7TF96HPpF1$OE!k!3hx8 zeXg|o6Di1vrO3WUGg^=MfiYF!2ii(JF!PCTBqez!pivUJU0#X!en+x$6)>1hSk9To znvJS|2`dqI06Y mW)nNA37V zV3x42)_{If5 0YHuj36l^~5*Asib$TEtpMa+HANCgY-6w^scYrUT3)wY- z;;=z4m{?2&UG5}F4ABI0T1V`7)lh<~6AMM1&llG$68i%WiA_|(zF7;ompP-?w!Fd+ zo!uKCb4F5_k#$+MvE( pXFtNNIRk7Uu(408BG9jQLz pU<#-sIz6pZq8^n&7 zg4b?DYv _G3PKbO4Fp&U?zx>Tpw;j6X(FKsgFGfWg=jbnY?9>v5(QkVK43sY+X?^q#xp(B^DBFr+&uUk zk0SkZ4CXW2Cd$$Tb2fhRVVs7;2zJ1LO}cy)?AZ~uH3k{rE;v=i{p2+wbGm`d*>rA) zj5!$XlLQ9#I0}Aw_IqOQl0YyizyrS50T^ntSnkI0AMPxdf?h}vEITt`Cn7?io{xvg ziF5=*d8((%f-da&8$dziw~j>A;t8Dq7FQDakm)mG!RL=7OO8mU{CK1O8gvyi@ebnX z)r$DA10V?p{|J`Cu8a ^1m8}2;(-hfWu@8&_26(bF2DD{aA 9ZWO5#rBc<4{=`(S|wigUqm#SAbj)1 zpK_H6n{ Hz5xr z{HVe@^ j#&BMP~FIZXRFIU_^Hq#*tmnd@6$6c8no62p|iP^u*fgPeU!Gy5W9dG z4bVv1xj#W=jA^lfcpdg$gud2}a{Wq`8eI;vhA;@RgAl*Qhww@S`S6WeN0-Co5+Pd{ zUz`QwHez&FXnw*G!I3RwgE?kZjasuUJ~V#{&q2f%FV|;B|5kmD(Es}SGT8(fN&L%2 zGdM7HSYgQU;2{Fy5e$19=>1ftN4c7rI1be@nlDpW wYFqNys;v= zSVl_a8vMRQB%1n2QXaV9dw~Z9%vHBp&OrG$jIp_9#m!v?B@ztQnQ0schbwOf{CWe# zYsd)~)P~s8s>FSFL>N0^WRr;|I^P362kki(LNJtl;tY0KL)Os{2{N1hB)ucL`aF2P z`D-|h;(Z`qp+ZaVH$%p^hsyL)_g2~9KR&>nYP8ol7otgNXOOQ^Pf>UY`)cR=DBw^B z1ojkcNJ<5xMVSAC!)Nbv>} w{o d`ILnzwTOcXB8mB+ANqhPFqO3bn*Y-ShEAz` zP|CQ-G-iUbqps`E3yHy5BmGz~c5=U93w_LOvtPiuwVqh7GqIo{=Wb(^Ag=r5O{@Ty zRc&MAWpD~MPbR>RJ)J=2E4T0EzV-_uH#gu+_n710!UqXKKc&Ij*KvE^Q7~9_+qQc{ zL++K3=$fmta+I0&jOEk>cGtOPi8sqe3rc^qz|X+I*^^5-JHLc^6g6AVPFnX*wmm#N zA<>^{RdQk#H8vA2S7zzWhSPRaHam!o9*R0|&JVvuwQ=#csItS4y-OLYn)~z4etC{P zO9@>_9h(~z2w5{ 2%@$0rsu9f&c&j literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py index 8ccff360a51a..e0ea82973af7 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py @@ -171,6 +171,14 @@ def test_given_colors_levels_and_extends(): plt.colorbar(c, ax=ax) +@image_comparison(['contourf_hatch_colors'], + remove_text=True, style='mpl20', extensions=['png']) +def test_hatch_colors(): + fig, ax = plt.subplots() + cf = ax.contourf([[0, 1], [1, 2]], hatches=['-', '/', '\\', '//'], cmap='gray') + cf.set_edgecolors(["blue", "grey", "yellow", "red"]) + + @pytest.mark.parametrize('color, extend', [('darkred', 'neither'), ('darkred', 'both'), (('r', 0.5), 'neither'),