From 5591ce6fa3cc3e79fa6cee8c75cec87db59a8721 Mon Sep 17 00:00:00 2001 From: Jody Klymak Date: Sat, 23 Feb 2019 09:09:19 -0800 Subject: [PATCH] Backport PR #13314: Move major/minor tick overstrike logic to Axis. --- doc/api/next_api_changes/2018-01-30-AL.rst | 10 + lib/matplotlib/axis.py | 39 +- .../baseline_images/test_axes/symlog.png | Bin 18102 -> 0 bytes .../baseline_images/test_axes/symlog.svg | 679 ------ .../baseline_images/test_axes/symlog2.png | Bin 26901 -> 0 bytes .../baseline_images/test_axes/symlog2.svg | 2143 ----------------- .../baseline_images/test_scale/log_scales.pdf | Bin 1551 -> 0 bytes .../baseline_images/test_scale/log_scales.png | Bin 4020 -> 0 bytes .../baseline_images/test_scale/log_scales.svg | 278 --- .../test_tightlayout/outward_ticks.pdf | Bin 6530 -> 0 bytes .../test_tightlayout/outward_ticks.png | Bin 25672 -> 0 bytes .../test_tightlayout/outward_ticks.svg | 1345 ----------- lib/matplotlib/tests/test_axes.py | 7 +- lib/matplotlib/tests/test_scale.py | 19 +- lib/matplotlib/tests/test_tightlayout.py | 13 +- lib/matplotlib/ticker.py | 14 +- 16 files changed, 63 insertions(+), 4484 deletions(-) create mode 100644 doc/api/next_api_changes/2018-01-30-AL.rst delete mode 100644 lib/matplotlib/tests/baseline_images/test_axes/symlog.png delete mode 100644 lib/matplotlib/tests/baseline_images/test_axes/symlog.svg delete mode 100644 lib/matplotlib/tests/baseline_images/test_axes/symlog2.png delete mode 100644 lib/matplotlib/tests/baseline_images/test_axes/symlog2.svg delete mode 100644 lib/matplotlib/tests/baseline_images/test_scale/log_scales.pdf delete mode 100644 lib/matplotlib/tests/baseline_images/test_scale/log_scales.png delete mode 100644 lib/matplotlib/tests/baseline_images/test_scale/log_scales.svg delete mode 100644 lib/matplotlib/tests/baseline_images/test_tightlayout/outward_ticks.pdf delete mode 100644 lib/matplotlib/tests/baseline_images/test_tightlayout/outward_ticks.png delete mode 100644 lib/matplotlib/tests/baseline_images/test_tightlayout/outward_ticks.svg diff --git a/doc/api/next_api_changes/2018-01-30-AL.rst b/doc/api/next_api_changes/2018-01-30-AL.rst new file mode 100644 index 000000000000..512cdbfbc764 --- /dev/null +++ b/doc/api/next_api_changes/2018-01-30-AL.rst @@ -0,0 +1,10 @@ +Minor Locator no longer try to avoid overstriking major Locators +```````````````````````````````````````````````````````````````` + +Previously, certain locator classes (`LogLocator`, `AutoMinorLocator`) +contained custom logic to avoid emitting tick locations that collided with +major ticks when they were used as minor locators. + +This logic has now moved to the Axis class; thus, for example, +``xaxis.minor.locator()`` now includes positions that collide with +``xaxis.major.locator()``, but ``xaxis.get_minorticklocs()`` does not. diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index fd3ee314dad0..662d5bda3c0a 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -1011,17 +1011,15 @@ def _set_artist_props(self, a): def iter_ticks(self): """ - Iterate through all of the major and minor ticks. + Yield ``(Tick, location, label)`` tuples for major and minor ticks. """ - major_locs = self.major.locator() - major_ticks = self.get_major_ticks(len(major_locs)) + major_locs = self.get_majorticklocs() major_labels = self.major.formatter.format_ticks(major_locs) - - minor_locs = self.minor.locator() - minor_ticks = self.get_minor_ticks(len(minor_locs)) - minor_labels = self.minor.formatter.format_ticks(minor_locs) - + major_ticks = self.get_major_ticks(len(major_locs)) yield from zip(major_ticks, major_locs, major_labels) + minor_locs = self.get_minorticklocs() + minor_labels = self.minor.formatter.format_ticks(minor_locs) + minor_ticks = self.get_minor_ticks(len(minor_locs)) yield from zip(minor_ticks, minor_locs, minor_labels) def get_ticklabel_extents(self, renderer): @@ -1297,18 +1295,29 @@ def get_ticklines(self, minor=False): return self.get_majorticklines() def get_majorticklocs(self): - "Get the major tick locations in data coordinates as a numpy array" + """Get the array of major tick locations in data coordinates.""" return self.major.locator() def get_minorticklocs(self): - "Get the minor tick locations in data coordinates as a numpy array" - return self.minor.locator() + """Get the array of minor tick locations in data coordinates.""" + # Remove minor ticks duplicating major ticks. + major_locs = self.major.locator() + minor_locs = self.minor.locator() + transform = self._scale.get_transform() + tr_minor_locs = transform.transform(minor_locs) + tr_major_locs = transform.transform(major_locs) + lo, hi = sorted(transform.transform(self.get_view_interval())) + # Use the transformed view limits as scale. 1e-5 is the default rtol + # for np.isclose. + tol = (hi - lo) * 1e-5 + minor_locs = [ + loc for loc, tr_loc in zip(minor_locs, tr_minor_locs) + if not np.isclose(tr_loc, tr_major_locs, atol=tol, rtol=0).any()] + return minor_locs def get_ticklocs(self, minor=False): - "Get the tick locations in data coordinates as a numpy array" - if minor: - return self.minor.locator() - return self.major.locator() + """Get the array of tick locations in data coordinates.""" + return self.get_minorticklocs() if minor else self.get_majorticklocs() def get_ticks_direction(self, minor=False): """ diff --git a/lib/matplotlib/tests/baseline_images/test_axes/symlog.png b/lib/matplotlib/tests/baseline_images/test_axes/symlog.png deleted file mode 100644 index 4c20548006d39174b7fda063e4231b84f2fe0009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18102 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 E1=w+qx&QzG diff --git a/lib/matplotlib/tests/baseline_images/test_axes/symlog.svg b/lib/matplotlib/tests/baseline_images/test_axes/symlog.svg deleted file mode 100644 index 170ec4464325..000000000000 --- a/lib/matplotlib/tests/baseline_images/test_axes/symlog.svg +++ /dev/null @@ -1,679 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/matplotlib/tests/baseline_images/test_axes/symlog2.png b/lib/matplotlib/tests/baseline_images/test_axes/symlog2.png deleted file mode 100644 index 44e5cfa3025e1a775f6edb6e725a10af2fe114c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26901 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/matplotlib/tests/baseline_images/test_scale/log_scales.pdf b/lib/matplotlib/tests/baseline_images/test_scale/log_scales.pdf deleted file mode 100644 index 182416404c08cd80e6b428ef16aae31ace340b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1551 zcmZWpdrVVT7$>fa@j8*A$>J8bv$#fdqxVs69}L+>O9{dXX$iwe<1V+SP$>77+fyk- zlMR^>X z-}xTD-={6N+Ok<)4y8SL1DrTVv48<`bsd$L2k44sKLoTzK!Q)M0d%=g0|S7=1`d#) zPeI8|3{5i}s>-VCpooA`wZRSuK}7;QIZ|}FB8yIlz&aetYQy1S2m!jd0f#M!zb)~1 zF>nF8FocSnNI($e!~!^L1-DnK0ftz3n=B!qSHGvzVHpf03Mf+KpdXM@EKWdM;YP0r z9Yy#ue5z0cDc~0rD2dI9Qe*b{`J`6-1I3D^==Y)9D-_5foH_~58x0^w&ygG*FdzpN z5%-1k!I20=T7@sg3F0ULU{?Q4CrQqU9Bp17ZW5qvK3u64in1GfmO`lp)dH4GLv3~d zDNtyjLXji;O6+~i3tK15h4zf6FAjCXEq&=#{yDD}e547V&6mQ%XY8J|Lu=f1|4t0$ zO0AQ>?!Fj(*s(Tgy)8SynWS8!#=o&6?DcxP87FTaix~XyL)e?U2QY8KN?cdxP>A5rD+5hF9 zv?~$AhCe(0YAU!i5T0vo&Ftjt%XVI0^y!rKkGA=Z8FG8;$6Tc+?f7$dZ(V$St*~r7 zy8r0CFPxeORX=u~_&yG8T)AtG1N^Pj6~64qwYN?Xq9( zczmwsy?g7*F5fgBG;DGafyBoamx?-0GWQ(Ll#mbMZ=4F#{2+W!0f~xIKq7?{kjO6u zB)W}*n3zFKZWhobUUvYKS{03h@Hr;=n9`^7VP`pGCL*saS&1^UthpS+>KUFhu{_Um zd^VG_oMD!)Q049pikRA24FdA}WaRT!1Han?ss*tgcLbYQNGN%>1*_w9>|3A~A%8AS zPrK>@9-RcyiW#dXq(BeF09H>i&mLglc|8w2;2Fl^9+3w~35;bJEUeiWV=|}MF=iIG zGRe-Y$4XDec&zAT%!F4(62=(t5R)*y5mO)uz>% diff --git a/lib/matplotlib/tests/baseline_images/test_scale/log_scales.png b/lib/matplotlib/tests/baseline_images/test_scale/log_scales.png deleted file mode 100644 index 404023bce90403a61cd48812340100d3942159c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4020 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i1B%QlYbpRzEX7WqAsj$Z!;#Vf4nJ@F#*W;|lxbnLtLEr;B4q#hkadH|8pPGPPa2)jVh83m=A}r)Fn)6OuC4OiEDk zNoweG^t>>2HN&xms=?_x74Ocy;f!yzeee2#*;U{V*HL>rAOKqI@W6gEJJ6#2{ESQt z3@I!e3=9(l6@cPy4M0)JQ9*10BA3R`&~X0K=Kn75a^m&{Aw)IZHI5c8nVPH7HA;7?(pzOfF(9pxcNKL`d2GtAO!9h`_>F<#N6zxgnKFFs8`r%Cy8N3=0{gaHX`strf3>PUbyrw{;mx_9HFBpn zotek@=EPg4$3;7P9)Gl`J{S9$g`1XPN>n`AoRMQ-nE$rKs`v0igKMR-uXmlB$Nc8N zw%p{~+Y0x_rTg!!W@2f$YdQaXa^$p|#tpJNV>4p(rWe}CrJvuKJud;63I=UHhUBC& ztGUM>7D&9_)mIvu4$MXgx3_J~y}cuD{pRI&Y#Esjyqk0W`9_`7ZzK=&-O)4An||6t zu7C6MJEr~{sGrPK)Ur@zsCg@J*Bb7cdgs} zoWXiS?(G}fa%0wCzZv{)9p!>_`TY3}>mRP?toy}5#a7LKyJMFxzY+a2`TF(!j}KQC z`sdA${s%76Y;1cs>TC}Guz8O7pSVAqvIAbrkYA*YCYRBc^1!t12BIz^r-uY-gX+A0 z|310LFfKk`UH@VFoxYQW!1Ca}{&ra7{@%TN$0U+%?CsCX9?~z2xwClt_U#{^&#yl> zuWmdKI;Vst0FNJD?EnA( diff --git a/lib/matplotlib/tests/baseline_images/test_scale/log_scales.svg b/lib/matplotlib/tests/baseline_images/test_scale/log_scales.svg deleted file mode 100644 index 52dd71dc5d8b..000000000000 --- a/lib/matplotlib/tests/baseline_images/test_scale/log_scales.svg +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/matplotlib/tests/baseline_images/test_tightlayout/outward_ticks.pdf b/lib/matplotlib/tests/baseline_images/test_tightlayout/outward_ticks.pdf deleted file mode 100644 index 664c30a7b78e9429b4aaf931e28f61f81299ffea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6530 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
    96h~hFMJ2Ulzz9#qBA1i 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index d0a8ff9b478a..79d04f1ce20d 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -1085,7 +1085,10 @@ def test_fill_between_interpolate_decreasing(): ax.set_ylim(800, 600) -@image_comparison(baseline_images=['symlog']) +# test_symlog and test_symlog2 used to have baseline images in all three +# formats, but the png and svg baselines got invalidated by the removal of +# minor tick overstriking. +@image_comparison(baseline_images=['symlog'], extensions=['pdf']) def test_symlog(): x = np.array([0, 1, 2, 4, 6, 9, 12, 24]) y = np.array([1000000, 500000, 100000, 100, 5, 0, 0, 0]) @@ -1097,7 +1100,7 @@ def test_symlog(): ax.set_ylim(-1, 10000000) -@image_comparison(baseline_images=['symlog2'], +@image_comparison(baseline_images=['symlog2'], extensions=['pdf'], remove_text=True) def test_symlog2(): # Numbers from -50 to 50, with 0.1 as step diff --git a/lib/matplotlib/tests/test_scale.py b/lib/matplotlib/tests/test_scale.py index 26822a7adc69..75a61c310c1d 100644 --- a/lib/matplotlib/tests/test_scale.py +++ b/lib/matplotlib/tests/test_scale.py @@ -1,4 +1,4 @@ -from matplotlib.testing.decorators import image_comparison +from matplotlib.testing.decorators import check_figures_equal, image_comparison import matplotlib.pyplot as plt from matplotlib.scale import Log10Transform, InvertedLog10Transform @@ -8,12 +8,17 @@ import pytest -@image_comparison(baseline_images=['log_scales'], remove_text=True) -def test_log_scales(): - ax = plt.figure().add_subplot(122, yscale='log', xscale='symlog') - - ax.axvline(24.1) - ax.axhline(24.1) +@check_figures_equal() +def test_log_scales(fig_test, fig_ref): + ax_test = fig_test.add_subplot(122, yscale='log', xscale='symlog') + ax_test.axvline(24.1) + ax_test.axhline(24.1) + xlim = ax_test.get_xlim() + ylim = ax_test.get_ylim() + ax_ref = fig_ref.add_subplot(122, yscale='log', xscale='symlog') + ax_ref.set(xlim=xlim, ylim=ylim) + ax_ref.plot([24.1, 24.1], ylim, 'b') + ax_ref.plot(xlim, [24.1, 24.1], 'b') @image_comparison(baseline_images=['logit_scales'], remove_text=True, diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py index 5898c1a94aeb..bae8951f8cd3 100644 --- a/lib/matplotlib/tests/test_tightlayout.py +++ b/lib/matplotlib/tests/test_tightlayout.py @@ -1,6 +1,7 @@ import warnings import numpy as np +from numpy.testing import assert_array_equal from matplotlib.testing.decorators import image_comparison import matplotlib.pyplot as plt @@ -161,8 +162,6 @@ def test_tight_layout9(): plt.tight_layout() -# The following test is misleading when the text is removed. -@image_comparison(baseline_images=['outward_ticks'], remove_text=False) def test_outward_ticks(): 'Test automatic use of tight_layout' fig = plt.figure() @@ -173,8 +172,6 @@ def test_outward_ticks(): tickdir='out', length=32, width=3, tick1On=True, which='minor') ax.yaxis.set_tick_params( tickdir='out', length=32, width=3, tick1On=True, which='minor') - # The following minor ticks are not labelled, and they - # are drawn over the major ticks and labels--ugly! ax.xaxis.set_ticks([0], minor=True) ax.yaxis.set_ticks([0], minor=True) ax = fig.add_subplot(222) @@ -187,6 +184,14 @@ def test_outward_ticks(): ax.xaxis.set_tick_params(tickdir='out', length=32, width=3) ax.yaxis.set_tick_params(tickdir='out', length=32, width=3) plt.tight_layout() + assert_array_equal( + np.round([ax.get_position().get_points() for ax in fig.axes], 3), + # These values were obtained after visual checking that they correspond + # to a tight layouting that did take the ticks into account. + [[[0.091, 0.590], [0.437, 0.903]], + [[0.581, 0.590], [0.927, 0.903]], + [[0.091, 0.140], [0.437, 0.454]], + [[0.581, 0.140], [0.927, 0.454]]]) def add_offsetboxes(ax, size=10, margin=.1, color='black'): diff --git a/lib/matplotlib/ticker.py b/lib/matplotlib/ticker.py index 0a8e77df6191..ba1e7bc6cd93 100644 --- a/lib/matplotlib/ticker.py +++ b/lib/matplotlib/ticker.py @@ -2256,13 +2256,9 @@ def tick_values(self, vmin, vmax): # If we're a minor locator *that expects at least two ticks per # decade* and the major locator stride is 1 and there's no more # than one minor tick, switch to AutoLocator. - ticklocs = AutoLocator().tick_values(vmin, vmax) - # Don't overstrike the major labels. Assumes major locs are - # at b = self._base - ticklocs = ticklocs[ - ~is_close_to_int(np.log(ticklocs) / np.log(b))] - return ticklocs - return self.raise_if_exceeds(ticklocs) + return AutoLocator().tick_values(vmin, vmax) + else: + return self.raise_if_exceeds(ticklocs) def view_limits(self, vmin, vmax): 'Try to choose the view limits intelligently' @@ -2643,10 +2639,6 @@ def __call__(self): tmin = ((vmin - t0) // minorstep + 1) * minorstep tmax = ((vmax - t0) // minorstep + 1) * minorstep locs = np.arange(tmin, tmax, minorstep) + t0 - mod = np.abs((locs - t0) % majorstep) - cond1 = mod > minorstep / 10.0 - cond2 = ~np.isclose(mod, majorstep, atol=0) - locs = locs[cond1 & cond2] return self.raise_if_exceeds(locs)