From 3e69fa5b2a39a37775b7864d3281c9e2144e1692 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Mon, 1 Feb 2016 17:02:57 -0500 Subject: [PATCH 1/2] FIX: only draw tick labels if tick is in range closes #5841 --- lib/matplotlib/axis.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index 0710eddf1154..32b8096dabb8 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -236,11 +236,12 @@ def get_loc(self): def draw(self, renderer): if not self.get_visible(): return - renderer.open_group(self.__name__) + midPoint = mtransforms.interval_contains(self.get_view_interval(), self.get_loc()) if midPoint: + renderer.open_group(self.__name__) if self.gridOn: self.gridline.draw(renderer) if self.tick1On: @@ -248,12 +249,12 @@ def draw(self, renderer): if self.tick2On: self.tick2line.draw(renderer) - if self.label1On: - self.label1.draw(renderer) - if self.label2On: - self.label2.draw(renderer) + if self.label1On: + self.label1.draw(renderer) + if self.label2On: + self.label2.draw(renderer) + renderer.close_group(self.__name__) - renderer.close_group(self.__name__) self.stale = False def set_label1(self, s): From 9051b06a39c07538087e73bb01471125492e5219 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Mon, 8 Feb 2016 17:21:37 -0500 Subject: [PATCH 2/2] MNT: mark as not stale if not visible If the draw is short-circuited because the tick is not visible mark it as not stale. --- lib/matplotlib/axis.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index 32b8096dabb8..277869e1123e 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -235,6 +235,7 @@ def get_loc(self): @allow_rasterization def draw(self, renderer): if not self.get_visible(): + self.stale = False return midPoint = mtransforms.interval_contains(self.get_view_interval(),