From 50aceb5357b01d366a5f102b2baf93c8942bb772 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sat, 7 Nov 2015 18:11:53 -0500 Subject: [PATCH 1/4] ENH: pass dash_offset through to gc for Line2D Previously, the user supplied offset to Line2D set_linestyle was silently discarded. This commit makes the value to be passed through to the underlying GC on draw, but not all of the backends do anything with the offset (ex Agg does not). --- lib/matplotlib/lines.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/lines.py b/lib/matplotlib/lines.py index 2005adf998df..f8aada39b927 100644 --- a/lib/matplotlib/lines.py +++ b/lib/matplotlib/lines.py @@ -346,6 +346,7 @@ def __init__(self, xdata, ydata, self.set_markersize(markersize) self._dashSeq = None + self._dashOffset = 0 self._markeredgecolor = None self._markeredgewidth = None @@ -1028,6 +1029,7 @@ def set_linestyle(self, ls): raise ValueError() self.set_dashes(ls[1]) + self._dashOffset = ls[0] self._linestyle = "--" return @@ -1198,7 +1200,7 @@ def _draw_solid(self, renderer, gc, path, trans): def _draw_dashed(self, renderer, gc, path, trans): gc.set_linestyle('dashed') if self._dashSeq is not None: - gc.set_dashes(0, self._dashSeq) + gc.set_dashes(self._dashOffset, self._dashSeq) renderer.draw_path(gc, path, trans) @@ -1222,6 +1224,7 @@ def update_from(self, other): self._markeredgecolor = other._markeredgecolor self._markeredgewidth = other._markeredgewidth self._dashSeq = other._dashSeq + self._dashOffset = other._dashOffset self._dashcapstyle = other._dashcapstyle self._dashjoinstyle = other._dashjoinstyle self._solidcapstyle = other._solidcapstyle From 2df08408eda36f93dee5e4bee7c8aff8d402c68f Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Thu, 12 Nov 2015 08:58:52 -0500 Subject: [PATCH 2/4] Make dash offset work in Agg backend --- src/_backend_agg_basic_types.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/_backend_agg_basic_types.h b/src/_backend_agg_basic_types.h index cea2b7e14f0f..c19b259eaa8c 100644 --- a/src/_backend_agg_basic_types.h +++ b/src/_backend_agg_basic_types.h @@ -63,6 +63,7 @@ class Dashes } stroke.add_dash(val0, val1); } + stroke.dash_start(get_dash_offset() * dpi / 72.0); } }; From 5e7580027e6aaa8196ecf1e148f48210d37933b7 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Thu, 12 Nov 2015 08:59:14 -0500 Subject: [PATCH 3/4] Make dash offset work in PostScript backend --- lib/matplotlib/backends/backend_ps.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/backends/backend_ps.py b/lib/matplotlib/backends/backend_ps.py index 4c4daeb33df5..dee9b5336925 100644 --- a/lib/matplotlib/backends/backend_ps.py +++ b/lib/matplotlib/backends/backend_ps.py @@ -276,14 +276,16 @@ def set_linecap(self, linecap, store=1): def set_linedash(self, offset, seq, store=1): if self.linedash is not None: oldo, oldseq = self.linedash - if seq_allequal(seq, oldseq): return + if seq_allequal(seq, oldseq) and oldo == offset: + return if seq is not None and len(seq): s="[%s] %d setdash\n"%(_nums_to_str(*seq), offset) self._pswriter.write(s) else: self._pswriter.write("[] 0 setdash\n") - if store: self.linedash = (offset,seq) + if store: + self.linedash = (offset, seq) def set_font(self, fontname, fontsize, store=1): if rcParams['ps.useafm']: return From 9ee4e99dab46dcaefb7e174162780d8838a1d1bc Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Tue, 24 Nov 2015 00:22:58 -0500 Subject: [PATCH 4/4] TST: add test of dash offsets --- .../baseline_images/test_axes/dash_offset.pdf | Bin 0 -> 8858 bytes .../baseline_images/test_axes/dash_offset.png | Bin 0 -> 8692 bytes .../baseline_images/test_axes/dash_offset.svg | 2874 +++++++++++++++++ lib/matplotlib/tests/test_axes.py | 13 + 4 files changed, 2887 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/dash_offset.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/dash_offset.png create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/dash_offset.svg diff --git a/lib/matplotlib/tests/baseline_images/test_axes/dash_offset.pdf b/lib/matplotlib/tests/baseline_images/test_axes/dash_offset.pdf new file mode 100644 index 0000000000000000000000000000000000000000..486d6a723afbb8296092528c9761fbff6cde8f4f GIT binary patch literal 8858 zcmd5idpwj|*I`^{44H9>RE8RnVdfcQQi}Ci zL-nS5s8pwm(I{y+E}es}lH__ z=;P{c4cX8z#L|a^Q@>&$0)@b5Z^Sq_5Xh^yL~#gY7nXn(!4D;neORHKSOOIg_!1l) zF`UQ{1)=>o2H2aukrON+EF7gFyCn#I@Ds2E90F|&;m2czghhrD=n4=+_KD#K`*8$> zbwIYOJD87?ARv%EHi3DTfBAO#^6f!bPawPVBLxK8F;PA&fq)YeNw6Cg^-Ud!0uWyp z;LC~S$HfE#trc4O638n!Az`fL`~)zig3fLsoj|jt64qnLKg96kq6ptsJqD9q{0L-M zPJCD}$M*-I6M$C7up(olSTUT);4Q!m1hR8vBwr8fEJC-H)cVF;S}Zr zJc94+r=a|*uX|VoSQJ=j1TdN_Czu}s_`Eogp#mNOQg~+6@Uemz4r>!8;b8Hjsy%aS zw@m98c5ri2ax9->zKJe7)Ry@Tsl_`AEd{Ck+Gd_`P)Ho%Tl z{#m-RrSH{WZ;zWCzZmp*4?i{V^T>k-JukWk+k;YOwf+&5@*}^$H#arqW5ObGZ^NDk zxt~9D)}(%XU(avd@hL93y1^+@KD1r-W=ma9$|Z*xsgDi1hex7<*7k0@@CZrA@cDgzue~@}@0D%ydMcleP;B~d&k|LOS85ZnAFJ1ZE`n1>5OtTY4?_=-HlE@)T^?x z|8`IOr46ljr^$yql9z^boIgG=7h^cmbR_h~UN7Ai^=m4=e8bH*(d!P|f$z?(dA30c6{wXaAttoU_{GwysWr{h76K-B4@i>!_h5`p!4e@XKD?XVrIkpWkuwK{OH2agkvkqs%N@cx(sGbjf1u^y#`?=G2P5k5?SUS_&)3D? zunYY$_KscmkFm{mq3eV16T8>PJ`JvO5S?rlZ>_CuJ(yhI(|RzqUYSQhvsj*Z=Csp ze=~O?vU>Ts3HaTf|MCYYNTJ!xeR&h;M@faN(4NL1tVUQ}$zW7si1Api;e)<73sMtrEwvN-2-yU8TK)})}S{Y32aMQ^tq z@~b?(!Dy&Uex&m3{w+nD=PvwD8>4P%K~<|bskTWGc^$0>Q|ezU!fzVSfZ(o-(3aUM z7wR|GrE%41E|LJ{-FpA3SZ1pRZA>Go&s>^^&EVo_dlg}6!Si>v)ht{u#Ho=ujb7Wh z#MUMP`!wQ$r$YpKy6sJguaR~~o2xV^g&o$a-(Hq+gFp6!tX z=z1?6ce$-@;ep1wOs+XQM44eun~1-i83Itaxw?E*f~CLcZr~Jl&QMg3ej~y50nT{O&EAwHf)7fILa$t(jRNdp9g9C8~7DJ^+gsU*t zCpDUL#AOg)~CfhqWfX^9a@m_2CGLFP%c zNX!h&=6YsbmF*@B>hoschSA#rPIXB1WX?pQ&xH-Le7JMVU z*cdKPFP>T0WZ1%GdZ>xmOthM41G83D6v(`#>}iGk!iE_~j4*xovde&Hg7}GtR`!xV zo?7X!Nn2Iqi!Jh1D$$37l`0IFu}T#)nA?;p44HeCDva1ip{ReWwMC@8P-}}yvsP~t zq-|0cCooT|we{HjJq_ z5%*PNrVLLbJ+&p32BGB(*OhfQtWCbCf92jR0}{)KzFpM|MzT~RzzQb})tQ_pdIpF> znQsF{VLk-tD@yl+rJ1VXlevJIykNDJ6S)Atu0g579Du7jQ}y8uY705D>tnrtUt;0# z87uF?a^--1&bu*OKgm2*#wrA*%J4>>p%^QWY7~P(^P`p$tMGWz?5cbmNxuq@BWYE6 zX%u8I(L%0MmYs=sFbzMQ^g^1iP3n^3wMmbp`C6nu8h717=qd~3Ab%+{Y>?lT zZ4G<^(~0`BKuo<4vti|~E~^9YxmNK%OCQukTE(BU)GI8O7Gj$GdD+{=fx_DD;tfJ{ zmY6N{$P#l=yVcq@3Tv~(kwWwiag5Mohd5q%%Z0JD`q^BblT^+1JRuNoR$|IFGb=G; zQ_V`|vX`5c%yafrt{}46W+mqA7_*Z3>xS(E$PjJ?4RlA)>WY1Y(!bh@@%lX0^Tk?u)-wd#4;a9d=a3Ijq=Dhx96OqpR#305lB zhkc>a;zq3M+rDb}dVV&)g5Cd4_TkqDIgcWyI;(c9RxKc;d+q$ky{_@uA@+)Ci`yvg=!$mjcFWq04S9)CS)$Sn-an%CkdrzPf3N)#05<{ffs*!{Pwp?klz^$xX1M4an6eK{3BcPnSBlEO zlmJ8nP^uk8iS3NrGFZ|(*t?>E6QFH!B{z5`U904I6nnN$lj$GS6YQ)tb?N`3jM)NfnGN^JHtnTtRWoL%SS#u1DnX_? zx+;*fj;<=i($U=^NuOqnhK}gyYC=^yx>`_&j_&lPG+wq)oR_xSqfsJkIDw=PNuYkQ zk=JxwA4VOYVt?XAeEQPXwSQI&Hy#J6cnbH0p38^&lHV;_B`ZOASzzb?vUyCZh{p2m zq$+8w&>5?2{_ElkY+D&wZb@0&2dzweKh&3W4<@vYJaRK$5s+SbN8+w}&eA78qu2t@ z$S9r<$7B?n!|aS=Vxgr`OFk2g7VTlyYKU@}*&3oOra8*f89}+8Gm#ZeuS;B(tuBgZ zdZ>$Hm}qrTB(qjcw2|i?3>T#njo_Sgq9L4^PMiU6OgGZBI4#Z3VOekIS|FkGZ@t;) z1-8kp*Jj&XX*fEQzC)Q|nYH5Nw7ZznvT5ryk;~H_Xd+e9)?ty_X%DbalcD_@l?b{t zUM0d_DpHA9EUi%SazI*CA{?v#3Vx!eLs6|N)IqeAjB$v*QV|ZBtz?Wxh`7D^>3$69 zEmXt`>2p+sw^U6vVwH5BYPg@&o%3Y1J`|vI@yxD4E7k|D)!UI6`+mo38$s5YqFs_m zYLB@2cxA7=V)*C!DXw3(UOC$?yK=g%{yD-#%MnWw^9CrUn2I`m`~U)1}JaX z_pr2TkoaKu98~&;6u-N^go_QQW?e9p&D_O$aT9sYhQlFJnc?sL*zg7PBF}W9o~&YJ z1bDaddeFabXe8y*OGiR@n;xd#m$_m)&+2^jaxd%ZXUo0F)hHJ)sCu4@mu-f-N`zf? zh>O?4>P#1}Mb*E!cr9`5JW@P|{RVg5gsEZ{sAG-B-PM6`I6oX@gu9D_OmTks5=*5A zcnHGz=|YQecXc6WoS$CPFTAiE@rkt4o{go#hBIRo!OcSry-O|+rp#!(}1s>Y2S{XpoCf1fdS5}b(pdN3S43I5l+H>gL!$@8_5K?^8%K|+yl`uV~m zQ7w0>%iUa%WSuH^Y_8NzY%b8h{cr5X)s!M-q9vS@L9~DqGl=uyjTuC9IPmC!e3ms@ zl*jDR5ba`~)DQ`oVH(`!5FGyg9sfz?mOLb8cvqw!7!91D8rDa_( zg7edh4dIOR;u&yEda;4HEUg(sI%(MA%ga*U8qX#L)mDQyEB)bf;!X1GA~4&zmPpC+ z^ZJ2o(-H%AjA_XXc7|z*Av@o+#K`%WQpHSmxoL?p`-W-BEOxVL$?T)A8-1rkA2jYy zN0e~ZLQ$qLOehu#PYT7mggu}(6Ju7xW>wOGM!@9*9Fa76v~6uV|r7ykaiC0xbJrm3w=&NO_yK9x^yqNdzGx9f#T zYsSYHwlny#Hghh(l?z+^cljlqnKM7(#$2z|?o-DCQhPe%gF5=Aw;!sDPNvpe44UJy zWX_q~+t8?_wgU$=#Ofh38Gn_H$R@0`?9EOT}|1R)9qW@ zQ{wJ09{*kg9lsl6&;MbQQ$uvp;Fb`RSMT2s-R*dtDoU9%{BcX}?4U<`>Q#mo>b>h< z(*<82a;TX8=i$zmhaCs?X9gwDd7%E6asQ+Kr$Ln!`}f@Rc1n5I`FYx(7Bem@I_Y0} zx?g(gqrF~5Q+OerYWKC#u4sIJX%v5JcPkp}U%SW7(768fx86HBm_>j<8{Zj_0!Fek z_5UD)6m9KqQz$y@-_5J&;D3iywEe$BD((w>)sPVuqG*(l_UL^T9sO_p@mQcCKMwTA z6|;X`GBlpq1$4ayVf;u}#f1V3*Tqx{WCuZ18ifKaq|mG>wD}aud`r-SSJ3fe2o{@I zf~W|-AR>%SfNbn+C^k|2SOJx8YZJnWr&xv3?G^>oAsUIm69}RflgZ!6ZTK;vKoGc| z5E2&*`tjo>MTKw)Y*uhM@Ra2^O%q}`TnvQ(*+G^B6WZ$g8>2!kVGI5_|`rrVQP+l!S#8RA>nY&-fO+< z_rBZH-?(m`rN2-g!?0OfzH|uv(u(wSi!ap74d#8qb<)MNWvbJ{IurAGDfYhy=JM~B6u{pGQW`kn9+ufK^Vuj#KaaC$L# zJ7(Zj+?TnErlV3TrQc9zR_+2`lSOLOt#*Z@N?!M6ZvRuiRMqR)up`Hpi8C(CjAT|~ z>u`OF(~b?T!v&0(BS&txJH^vt-h1*}jItx6;+)e+ggA9b(LguiHQ`@0(E3JT4W%Lc znh|-O8~lEylJ!`k>JwPQ=i=1ZKvfrKWVdIgET5(fZ-Z}m%UR{aeS)hEcgxD)b4E&Q zskwNI@DL-VgeeS3(cTlY)7-kwu4%F_9ejN`e5AO+`)I&p2@ib{!!wgggCj;vl7_n$ z1(n`xSFBpK3Z4?0una!8wx&7V{W*3gr*jzHM{(({H?d9Lu%ch)hKJnj5{auK6J^O< z3ra3O@|lgep`jr@R%cobH1U7vH-CL?;uI4#P?tIqIxr*}jfogl^-G7kF|21={~^hs z{sO$KpX#MkbHm&ZwAz?(Tzwq6K5X$}IQ~P}7Il#;brPS{ZD7vywK$`1*5YH=;=_;d z82f#R%uSKn``(^iX1M7@VsBn@Z=SD%B|mbj@B+7?)!~YZaMs)#ey4($oeaRR*RNv& z*3<8Sa%fb=*DpJ{EO~p~UGFFH7ZlB<*+vbmyM&wh#oTk9j|S^9+>Cge11an>+Z|gE z9rd)k?aj?L!XKTuCqHx2<(Hn>UYD$B_T}B#&$H(b7PdO@Vd0*6GlXk7wHDub8e)3_ z|7v(5n{SD$*{!{sP82ShZ)389URjaYyP9HZCPs_Wf0@Y%nd$rRjDCP1!UGoUOk6#> z6neg(ELr|uV>j&@7*`wq=z4A8nK)QRSVQ%Cz>TbRTF3d+*?w-t=NQIhmKUbv?g5$A zs48Pwc5+~mzd!Fz89b@v!Pv&E5uah|s+>LSwmykJgfEu52;iYsh`Ho-n5vs~jn4|H zW`*4H-gQB?Tx>^iV|cG?)O+B@5D|W27m`-!cnU0rCeRR$L_>Z z{C*XilhEakmny7rwWd@>9Bu}$mD{SPb&9pjQL+P1>K5&B|HRn9rLw{wHXPL|UL@US z;^iCJhMyjuj;&rZp=XFmXqd^V%}F-#=b@&D44nx;;0Uvqk&{C^rdauUYB+#bYgcE&FZbXAPfDSLRUTw5op^l^U%Ym zYOmJ@*_v>YQ15+BbWfs8Ry9~(Uw^gXCC7G&;lhvJvsvj5@4?s53{?Osh1=f>DS`;H zmUc|ryOC`@QfziczuqaIt#0mYBz{F^@K4=t$GZ}VCMQ)Dx ze>^52!`BBw^%^rfLY~A+1gHir#p!s94|cqMF;B??p*+C9XFjDypQD00Xif3sS}d7x zEo`h&Hntls+)W*&@7M~mLG=0feI2G0vCC4-_I&rNv*HlUjQ)mOr@#D6%0K8+-oFOJ)qAcJ@OqgX0X{RR`&ws|jXOgi& z7O@_1BRj-?4{c8BT738C%*kVbfLd4f_PXvJTXT#WU@d%k9-5X?z2=6@PJ4@>k}iay zkCu8ml)+_IPSm`bop}>@`ciFu{lB-@CFObVqN6qcPBW9*xB>S2Y|}2!a2@ZOQY%0Ycq^5(_x1G!hlKdl7wo}Dqo;L~dRsteIw@lNiN*TM5xn_)scSZ}H=RfzG$wg` zI<|4!xH^|=|MSC@f1y%^I?Wm@RcPUYB<=+V?IvO|HMO>S&Z`Av+U-k@4AlC0CEM#- zvW>+1&=aV4=e$fN7(D*2!2;fbB6RVaX4|r^;X?+EzA=PZ+s3tCf4Ihqq=hmLfS!U} z9VEsj)b1GUxl+U~PU`}-?N=2$Vb!cJoA>3 zp6=2%B4=G`MH)R|EqXUEPMc4Dwi(baD)0xbm>wMhX>l5_P z?!q@k345oZ&yrm3qGh{kjL%rSbMB`f9s;(4KkkGTz`20tC8>$8q@?7QzjEGGdMW1S&&oJ#9-9B_!SSxasfh4B zEFncmIt}!8dwZLJ>&s4Fpg{)BwlGp$*NYcVD%RUz${~9Bx_v(ay%1buV8m;tBisoW z2+wQnt#3a?rApW~qEt}}ze!{!l2Z%N^^5Pxw3{3mzP|27E%Ik^3CpJO2Xh%QF_hSz zm-ntVG;@H^))p@JuP*@qMWECe!enq|KgV?!leN$X)qv0-S0o7S_t0wMjMD7arP`ZI zsp-^mZ~@+vEL_dU;+;DoXgE$29s?M)th)XUyobOfjg@Nvb$<&*Abl?z5OY?qbRT^* zPt)9pK?tS^AMCo3n`<=MjHTF;T05Jx$7Z2f*B%nc$!Fap) zlo}0k0i%h`47tH`1He|rdXD?C@%zeeLx`=-?-HP6zQ4X8s9wGg#~j>os$E|C{;Fa# zxdI01kK5}A4-L1i;U{3wd8EeM?a}0MfLrAZ<|A}H%QUy&ZkbPZ2`FmdJ=>P{1I~Q7 z{npTD|G$|V*%He1TUxUPJ|&%8avhqpVC2iO{tPzAxx<48eFR(@mv7@Uu^ z)$&uMm}m6?r>v3I{-~*xp=yf2emb62?899Fl%mF+6x9zty?KVT)7R~HKS0CB99Rl< ze$^U9yOR2m;KOCyQ$C9b+pQS`gmb3M-LbWZ2C>T&0)kS0T-AV+qaB# z0PImP$CHva{Jstr;)t!y@8V{!3NZIgPI6fn9<(9HITi%GkLMULNVR1PTZEqXNeKfI zj=$%Gp$Vk92#OkZu3PyT1K$*6zY&Qe`s^%Y1fB|B@3$dLTee_9@w-SaIX)<1Lyi!1 zXDkIPZbj(^`3{9uW_DzG+VLd#{sQ>|En~cErbG&))4(D$GBWbcojZB{UXXI&4pOr%{K&NmE|WVk#QS3{9@X2V zT}GhykkFXw@#)AAG7#Z)RJlGtF_aIYH+Y^_}=k%iJWBNoX&CSyLVf$W(88F1B~8Wl1?QKc<|s{ZB^l5AfKEf zkiHKzr_w+RRJJZ3s+$`z2*EUsZTaYwY&d>;gb=rO+*Iqbf#x3k4DtC-r!{AYLs56= zG+>RFCeghQjQUjz4zv;{m(8-1A?owwOSSEI(DNqGd$=u$?q$8o1Ie|mcvxUvJ}e!z zga8H7QX=dHk@RBZ@h72Yqn&t7><)b3IaH@G|8j*BRycZHFxnL^iVlw$9_YOi8^|xe zy>@ZR=<`!>Cg}txb!MY(14;B4PkGIo+*p-F=)|;l7?t|+C2-^#4kv^|(sH_-<(A^$ zDQAhIWYw?E#SXW?bvi^f@QG=hXmq4MTzM(OEp-(u$FC;EN-6ET98?DHhMy^}lc?Za z&e0)ec%VnsFS2H>C+x61lNobCx`^RD`e;R4RCV<8Vi_&ZysxNS)s2pEhhi43K54rb z!*u?I{x1NA4WF!W8XfNGeP}A`fBvW04BusNb&3N^-rj=_iJMrGoS~R?7*_i7X}(`v zP`T<&&%Jj|Egc&ee-X#`qKU^nT8~Nod)Tizq||zzHR#0Ax5?k(=r + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 5a3e6ee70e13..02071022b74d 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -4102,12 +4102,14 @@ def test_shared_scale(): assert_equal(ax.get_yscale(), 'linear') assert_equal(ax.get_xscale(), 'linear') + @cleanup def test_violin_point_mass(): """Violin plot should handle point mass pdf gracefully.""" plt.violinplot(np.array([0, 0])) + @cleanup def test_axisbg_warning(): fig = plt.figure() @@ -4118,6 +4120,17 @@ def test_axisbg_warning(): ("The axisbg attribute was deprecated in version 2.0."))) +@image_comparison(baseline_images=["dash_offset"], remove_text=True) +def test_dash_offset(): + fig, ax = plt.subplots() + x = np.linspace(0, 10) + y = np.ones_like(x) + for j in range(0, 100, 2): + ax.plot(x, j*y, ls=(j, (10, 10)), lw=5, color='k') + plt.show() + + + if __name__ == '__main__': import nose import sys