From f8eacb6d35a6403456a83ba12662053442d43dc6 Mon Sep 17 00:00:00 2001 From: "Kristen M. Thyng" Date: Fri, 28 Jun 2013 17:02:25 -0500 Subject: [PATCH 1/4] Added lines to _contour_args() to look for vmin/vmax input arguments and then min or max out the input z values accordingly. --- lib/matplotlib/contour.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 66a354964144..ad806bfa5f2e 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -1493,6 +1493,17 @@ def _contour_args(self, args, kwargs): else: raise TypeError("Too many arguments to %s; see help(%s)" % (fn, fn)) + + # Check for vmin and vmax values and max out z values accordingly + if 'vmax' in kwargs: + vmax = kwargs.pop('vmax') + ind = z > vmax + z[ind] = vmax + if 'vmin' in kwargs: + vmin = kwargs.pop('vmin') + ind = z < vmin + z[ind] = vmin + z = ma.masked_invalid(z, copy=False) self.zmax = ma.maximum(z) self.zmin = ma.minimum(z) From d806c1a803f62c261dbfdc41c2b1da80bdc9f7b6 Mon Sep 17 00:00:00 2001 From: "Kristen M. Thyng" Date: Fri, 28 Jun 2013 17:23:12 -0500 Subject: [PATCH 2/4] Additionally checked for the case when the desired vmax or vmin are outside the range of the data. In this case, the contour plot, if extend for the appropriate direction is also chosen, will appropriately reflect the desired range. --- lib/matplotlib/contour.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index ad806bfa5f2e..72f704e4fbc3 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -21,6 +21,7 @@ import matplotlib.patches as mpatches import matplotlib.texmanager as texmanager import matplotlib.transforms as mtrans +import pdb # Import needed for adding manual selection capability to clabel from matplotlib.blocking_input import BlockingContourLabeler @@ -1196,7 +1197,7 @@ def _process_levels(self): # want to leave the original levels attribute unchanged. # (Colorbar needs this even for line contours.) self._levels = list(self.levels) - + pdb.set_trace() if self.extend in ('both', 'min'): self._levels.insert(0, min(self.levels[0], self.zmin) - 1) if self.extend in ('both', 'max'): @@ -1495,18 +1496,24 @@ def _contour_args(self, args, kwargs): (fn, fn)) # Check for vmin and vmax values and max out z values accordingly + # want zmax and zmin to be able to be outside data range, according to input vmin/vmax if 'vmax' in kwargs: - vmax = kwargs.pop('vmax') + vmax = kwargs['vmax'] ind = z > vmax z[ind] = vmax + self.zmax = kwargs.pop('vmax') + else: + self.zmax = ma.maximum(z) if 'vmin' in kwargs: - vmin = kwargs.pop('vmin') + vmin = kwargs['vmin'] ind = z < vmin z[ind] = vmin + self.zmin = kwargs.pop('vmin') + else: + self.zmin = ma.minimum(z) z = ma.masked_invalid(z, copy=False) - self.zmax = ma.maximum(z) - self.zmin = ma.minimum(z) + if self.logscale and self.zmin <= 0: z = ma.masked_where(z <= 0, z) warnings.warn('Log scale: values of z <= 0 have been masked') From f627dc711df5fc22772ec493796073770da64fdf Mon Sep 17 00:00:00 2001 From: "Kristen M. Thyng" Date: Fri, 28 Jun 2013 17:30:58 -0500 Subject: [PATCH 3/4] switch calls for vmin and vmax through kwargs in _contour_args() to just call and not pop out the arguments. Turns out it is not necessary to use extend, this will just happen on its own. --- lib/matplotlib/contour.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 72f704e4fbc3..168b751013b4 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -21,7 +21,6 @@ import matplotlib.patches as mpatches import matplotlib.texmanager as texmanager import matplotlib.transforms as mtrans -import pdb # Import needed for adding manual selection capability to clabel from matplotlib.blocking_input import BlockingContourLabeler @@ -1197,7 +1196,7 @@ def _process_levels(self): # want to leave the original levels attribute unchanged. # (Colorbar needs this even for line contours.) self._levels = list(self.levels) - pdb.set_trace() + if self.extend in ('both', 'min'): self._levels.insert(0, min(self.levels[0], self.zmin) - 1) if self.extend in ('both', 'max'): @@ -1501,14 +1500,14 @@ def _contour_args(self, args, kwargs): vmax = kwargs['vmax'] ind = z > vmax z[ind] = vmax - self.zmax = kwargs.pop('vmax') + self.zmax = kwargs['vmax'] else: self.zmax = ma.maximum(z) if 'vmin' in kwargs: vmin = kwargs['vmin'] ind = z < vmin z[ind] = vmin - self.zmin = kwargs.pop('vmin') + self.zmin = kwargs['vmin'] else: self.zmin = ma.minimum(z) From 3c01e5b10c65a3e2abc7fb2f3cf190df7e7d4ba7 Mon Sep 17 00:00:00 2001 From: "Kristen M. Thyng" Date: Sat, 29 Jun 2013 16:23:03 -0500 Subject: [PATCH 4/4] Added to test_contour.py for colorbar behavior Two image check tests were added to test_contour.py to make a contourf plot using input argument vmax, one with vmax greater than the maximum of the data set z values and one with vmax less than the maximum of the data set z values. --- .../contour_vmax_over_colorbar_range.png | Bin 0 -> 17678 bytes .../contour_vmax_under_colorbar_range.png | Bin 0 -> 19697 bytes lib/matplotlib/tests/test_contour.py | 24 ++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contour_vmax_over_colorbar_range.png create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contour_vmax_under_colorbar_range.png diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_vmax_over_colorbar_range.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_vmax_over_colorbar_range.png new file mode 100644 index 0000000000000000000000000000000000000000..09ddfe1f6fb911854db63ea0b00751effbee9932 GIT binary patch literal 17678 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 bp6oHp#fP3LkU2*}W1^*gSS>@v-0%MZlkQ_8 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_vmax_under_colorbar_range.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_vmax_under_colorbar_range.png new file mode 100644 index 0000000000000000000000000000000000000000..a36043f609db0e1c706bf9d45bdb4f0adffd2ccf GIT binary patch literal 19697 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 RJQO{%<`F&BTos$p{}1$Nai9PI literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py index 120b4843e436..ebbad2e8e9b0 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py @@ -177,6 +177,30 @@ def test_given_colors_levels_and_extends(): plt.colorbar() +@image_comparison(baseline_images=['contour_vmax_over_colorbar_range'], + extensions=['png']) +def test_vmax_over_colorbar_range(): + xvec = np.linspace(0, 10) + yvec = np.linspace(0, 20) + X, Y = np.meshgrid(xvec, yvec) + Z = X**2 + Y**2 + + plt.contourf(X, Y, Z, cmap='pink_r', vmax=700) + plt.colorbar() + + +@image_comparison(baseline_images=['contour_vmax_under_colorbar_range'], + extensions=['png']) +def test_vmax_under_colorbar_range(): + xvec = np.linspace(0, 10) + yvec = np.linspace(0, 20) + X, Y = np.meshgrid(xvec, yvec) + Z = X**2 + Y**2 + + plt.contourf(X, Y, Z, cmap='pink_r', vmax=300) + plt.colorbar() + + if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False)