From e4dafa2d3ffdc2042bffd8f7c006c797b937db21 Mon Sep 17 00:00:00 2001 From: ksunden Date: Mon, 19 Nov 2018 10:22:06 -0600 Subject: [PATCH 1/6] BUG: Prevent overwriting of tick visiblity --- lib/matplotlib/axis.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index 4f174b0da45e..51f4174b1a06 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -826,16 +826,21 @@ def set_tick_params(self, which='major', reset=False, **kw): For documentation of keyword arguments, see :meth:`matplotlib.axes.Axes.tick_params`. """ + blacklist = ['tick1On', 'tick2On', 'label1On', 'label2On', 'gridOn'] dicts = [] + blacklist_dicts = [] if which == 'major' or which == 'both': dicts.append(self._major_tick_kw) if which == 'minor' or which == 'both': dicts.append(self._minor_tick_kw) kwtrans = self._translate_tick_kw(kw) + for d in dicts: if reset: d.clear() + blacklist_dicts.append({k:d.pop(k) for k in blacklist if k in d.keys()}) d.update(kwtrans) + [blacklist_dicts[-1].pop(k, None) for k in kwtrans.keys()] if reset: self.reset_ticks() @@ -848,6 +853,9 @@ def set_tick_params(self, which='major', reset=False, **kw): tick._apply_params(**self._minor_tick_kw) if 'labelcolor' in kwtrans: self.offsetText.set_color(kwtrans['labelcolor']) + + for d,bd in zip(dicts, blacklist_dicts): + d.update(bd) self.stale = True @staticmethod From ff2759ad3de61c53ce0413502365d220292afeef Mon Sep 17 00:00:00 2001 From: Kyle Sunden Date: Mon, 19 Nov 2018 11:34:55 -0600 Subject: [PATCH 2/6] TST: add test to prevent regression of tick visibility behavior --- .../test_axes/retain_tick_visibility.png | Bin 0 -> 16126 bytes lib/matplotlib/tests/test_axes.py | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/retain_tick_visibility.png diff --git a/lib/matplotlib/tests/baseline_images/test_axes/retain_tick_visibility.png b/lib/matplotlib/tests/baseline_images/test_axes/retain_tick_visibility.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac4cb6f6fbda0150a36d258e7d432c6b6dfdc98 GIT binary patch literal 16126 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index f6e3f733b95b..d69a53170863 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -4870,6 +4870,12 @@ def test_set_get_ticklabels(): ax[1].set_xticklabels(ax[0].get_xticklabels()) ax[1].set_yticklabels(ax[0].get_yticklabels()) +@image_comparison(baseline_images=['retain_tick_visibility'], extensions=['png']) +def test_retain_tick_visibility(): + fig, ax = plt.subplots() + plt.plot([0, 1, 2], [0, -1, 4]) + plt.setp(ax.get_yticklabels(), visible=False) + ax.tick_params(axis="y", which="both", length=0) def test_tick_label_update(): # test issue 9397 From 0a82d820150fe2bf733a8c9549114b9d7ed4db13 Mon Sep 17 00:00:00 2001 From: Kyle Sunden Date: Mon, 19 Nov 2018 11:55:50 -0600 Subject: [PATCH 3/6] MAINT: flake8 fixes --- lib/matplotlib/axis.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index 51f4174b1a06..f12e8927f88b 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -838,7 +838,9 @@ def set_tick_params(self, which='major', reset=False, **kw): for d in dicts: if reset: d.clear() - blacklist_dicts.append({k:d.pop(k) for k in blacklist if k in d.keys()}) + blacklist_dicts.append( + {k: d.pop(k) for k in blacklist if k in d.keys()} + ) d.update(kwtrans) [blacklist_dicts[-1].pop(k, None) for k in kwtrans.keys()] @@ -854,7 +856,7 @@ def set_tick_params(self, which='major', reset=False, **kw): if 'labelcolor' in kwtrans: self.offsetText.set_color(kwtrans['labelcolor']) - for d,bd in zip(dicts, blacklist_dicts): + for d, bd in zip(dicts, blacklist_dicts): d.update(bd) self.stale = True From 3cc6b00a1b40f4b1d58457c5bcfa52bcd3731291 Mon Sep 17 00:00:00 2001 From: Kyle Sunden Date: Mon, 19 Nov 2018 14:30:37 -0600 Subject: [PATCH 4/6] MAINT: more flake8/whitespace fixes --- lib/matplotlib/axis.py | 2 +- lib/matplotlib/tests/test_axes.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index f12e8927f88b..aca3c5f241b3 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -839,7 +839,7 @@ def set_tick_params(self, which='major', reset=False, **kw): if reset: d.clear() blacklist_dicts.append( - {k: d.pop(k) for k in blacklist if k in d.keys()} + {k: d.pop(k) for k in blacklist if k in d.keys()} ) d.update(kwtrans) [blacklist_dicts[-1].pop(k, None) for k in kwtrans.keys()] diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index d69a53170863..17213d317901 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -4870,13 +4870,18 @@ def test_set_get_ticklabels(): ax[1].set_xticklabels(ax[0].get_xticklabels()) ax[1].set_yticklabels(ax[0].get_yticklabels()) -@image_comparison(baseline_images=['retain_tick_visibility'], extensions=['png']) + +@image_comparison( + baseline_images=['retain_tick_visibility'], + extensions=['png'], +) def test_retain_tick_visibility(): fig, ax = plt.subplots() plt.plot([0, 1, 2], [0, -1, 4]) plt.setp(ax.get_yticklabels(), visible=False) ax.tick_params(axis="y", which="both", length=0) + def test_tick_label_update(): # test issue 9397 From b7a4db0d7eaed7dc069b5d823d220c1cd1fa3280 Mon Sep 17 00:00:00 2001 From: Kyle Sunden Date: Tue, 27 Nov 2018 10:41:50 -0600 Subject: [PATCH 5/6] REV: Remove second iteration by not placing in blacklist dict --- lib/matplotlib/axis.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index aca3c5f241b3..c8e2ca331762 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -839,10 +839,12 @@ def set_tick_params(self, which='major', reset=False, **kw): if reset: d.clear() blacklist_dicts.append( - {k: d.pop(k) for k in blacklist if k in d.keys()} + { + k: d.pop(k) for k in blacklist + if k in d.keys() and k not in kwtrans.keys() + } ) d.update(kwtrans) - [blacklist_dicts[-1].pop(k, None) for k in kwtrans.keys()] if reset: self.reset_ticks() From d501de740aa692d74173e4a1b7c1004e400b494f Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sat, 23 Feb 2019 12:52:26 -0500 Subject: [PATCH 6/6] FIX: only update the kwargs asked for in tick_params --- lib/matplotlib/axis.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index c8e2ca331762..4cc145a19f71 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -826,40 +826,35 @@ def set_tick_params(self, which='major', reset=False, **kw): For documentation of keyword arguments, see :meth:`matplotlib.axes.Axes.tick_params`. """ - blacklist = ['tick1On', 'tick2On', 'label1On', 'label2On', 'gridOn'] dicts = [] - blacklist_dicts = [] if which == 'major' or which == 'both': dicts.append(self._major_tick_kw) if which == 'minor' or which == 'both': dicts.append(self._minor_tick_kw) kwtrans = self._translate_tick_kw(kw) + # this stashes the parameter changes so any new ticks will + # automatically get them for d in dicts: if reset: d.clear() - blacklist_dicts.append( - { - k: d.pop(k) for k in blacklist - if k in d.keys() and k not in kwtrans.keys() - } - ) d.update(kwtrans) if reset: self.reset_ticks() else: + # apply the new kwargs to the existing ticks if which == 'major' or which == 'both': for tick in self.majorTicks: - tick._apply_params(**self._major_tick_kw) + tick._apply_params(**kwtrans) if which == 'minor' or which == 'both': for tick in self.minorTicks: - tick._apply_params(**self._minor_tick_kw) + tick._apply_params(**kwtrans) + # special-case label color to also apply to the offset + # text if 'labelcolor' in kwtrans: self.offsetText.set_color(kwtrans['labelcolor']) - for d, bd in zip(dicts, blacklist_dicts): - d.update(bd) self.stale = True @staticmethod