Mercurial > octave
changeset 24056:ae35d50d9756 stable
Ensure numeric values are passed for the axes "clim" property (bug #52053).
* imagesc.m, imshow.m, slice.m: Cast values to double before setting "clim".
* caxis.m (__caxis__): Issue an error if requested clim vector is not increasing
and numeric. Change misleading argument name from "ax" to arg1.
author | Pantxo Diribarne <pantxo.diribarne@gmail.com> |
---|---|
date | Tue, 19 Sep 2017 14:03:08 +0200 |
parents | 8a6747c6db1a |
children | e18bf7459f79 a6cf8e06603a |
files | scripts/image/imagesc.m scripts/image/imshow.m scripts/plot/appearance/caxis.m scripts/plot/draw/slice.m |
diffstat | 4 files changed, 12 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/image/imagesc.m Sun Sep 17 22:16:14 2017 -0400 +++ b/scripts/image/imagesc.m Tue Sep 19 14:03:08 2017 +0200 @@ -103,7 +103,7 @@ if (do_new && ! ishold (hax)) ## use given climits or guess them from the matrix if (numel (climits) == 2 && climits(1) <= climits(2)) - set (hax, "clim", climits); + set (hax, "clim", double (climits)); elseif (! isempty (climits)) error ("imagesc: CLIMITS must be in form [lo, hi]"); endif
--- a/scripts/image/imshow.m Sun Sep 17 22:16:14 2017 -0400 +++ b/scripts/image/imshow.m Tue Sep 19 14:03:08 2017 +0200 @@ -178,7 +178,7 @@ ## Set default display range if display_range not set yet. if (isempty (display_range)) - display_range = [min(im(:)), max(im(:))]; + display_range = double ([min(im(:)), max(im(:))]); elseif (isna (display_range)) t = class (im); switch (t)
--- a/scripts/plot/appearance/caxis.m Sun Sep 17 22:16:14 2017 -0400 +++ b/scripts/plot/appearance/caxis.m Tue Sep 19 14:03:08 2017 +0200 @@ -73,23 +73,23 @@ endfunction -function limits = __caxis__ (ca, ax, varargin) +function limits = __caxis__ (ca, arg1, varargin) if (nargin == 1) limits = get (ca, "clim"); - elseif (ischar (ax)) - if (strcmpi (ax, "auto")) + elseif (ischar (arg1)) + if (strcmpi (arg1, "auto")) set (ca, "climmode", "auto"); - elseif (strcmpi (ax, "manual")) + elseif (strcmpi (arg1, "manual")) set (ca, "climmode", "manual"); endif - elseif (isvector (ax)) - len = length (ax); - if (len != 2) - error ("caxis: LIMITS must be a 2-element vector"); + elseif (isvector (arg1)) + if (numel (arg1) != 2 || ! isnumeric (arg1) || arg1(1) >= arg1(2)) + error (["caxis: " + "LIMITS must be a numeric 2-element vector where LIM1 < LIM2"]); endif - set (ca, "clim", [ax(1), ax(2)]); + set (ca, "clim", arg1); else error ("caxis: expecting no args, a string, or a 2 element vector"); endif
--- a/scripts/plot/draw/slice.m Sun Sep 17 22:16:14 2017 -0400 +++ b/scripts/plot/draw/slice.m Tue Sep 19 14:03:08 2017 +0200 @@ -143,7 +143,7 @@ sidx = 1; minv = min (v(:)); maxv = max (v(:)); - set (hax, "clim", [minv, maxv]); + set (hax, "clim", double ([minv, maxv])); if (have_sval) ns = length (sx) + length (sy) + length (sz);