From 0387807a90b5b2591182943adb0c3b5ca42dcb28 Mon Sep 17 00:00:00 2001 From: egaudry Date: Mon, 3 Oct 2016 15:05:25 +0200 Subject: [PATCH 1/2] Update colorbar.py --- lib/matplotlib/colorbar.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index 67cdae563d52..dc8ca9549140 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -600,12 +600,17 @@ def _ticker(self): formatter.set_data_interval(*intv) b = np.array(locator()) - if isinstance(locator, ticker.LogLocator): + if isinstance(locator, ticker.LogLocator) or isinstance(locator, ticker.SymmetricalLogLocator): eps = 1e-10 b = b[(b <= intv[1] * (1 + eps)) & (b >= intv[0] * (1 - eps))] else: eps = (intv[1] - intv[0]) * 1e-10 b = b[(b <= intv[1] + eps) & (b >= intv[0] - eps)] + + #failsafe in case less than 2 decades found + if len(b)<2: + b = np.array(locator()) + self._tick_data_values = b ticks = self._locate(b) formatter.set_locs(b) From 1596a97a05b1b4c6fb6d30964a2b167dd09c198a Mon Sep 17 00:00:00 2001 From: egaudry Date: Mon, 3 Oct 2016 15:07:15 +0200 Subject: [PATCH 2/2] Update ticker.py --- lib/matplotlib/ticker.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/matplotlib/ticker.py b/lib/matplotlib/ticker.py index 8bba524d29e8..5a98a459cebe 100644 --- a/lib/matplotlib/ticker.py +++ b/lib/matplotlib/ticker.py @@ -2126,6 +2126,8 @@ def get_log_range(lo, hi): a_range = get_log_range(t, -vmin + 1) else: a_range = get_log_range(-vmax, -vmin + 1) + if vmin<0 and vmax<0: + a_range = ( a_range[0], a_range[1]+1 ) else: a_range = (0, 0)