# HG changeset patch # User Ben Abbott # Date 1283948268 14400 # Node ID 18b0af0bbd6b25c91936ca2bd3c4040f6337d773 # Parent 97b8d462ef1171712a6c03ce12067f9089b50251 image.m: Fix axis limits for single dimension images, add demo. diff -r 97b8d462ef11 -r 18b0af0bbd6b scripts/ChangeLog --- a/scripts/ChangeLog Tue Sep 07 17:10:00 2010 -0400 +++ b/scripts/ChangeLog Wed Sep 08 08:17:48 2010 -0400 @@ -1,3 +1,8 @@ +2010-09-08 Ben Abbott + + * image/image.m: Fix axis limits for single dimension images, add + demo. + 2010-09-07 David Bateman * plot/plotyy.m: Don't add the __plotyy_axes__ property to the diff -r 97b8d462ef11 -r 18b0af0bbd6b scripts/image/image.m --- a/scripts/image/image.m Tue Sep 07 17:10:00 2010 -0400 +++ b/scripts/image/image.m Wed Sep 08 08:17:48 2010 -0400 @@ -120,11 +120,27 @@ ydata = [y(1), y(end)]; c = size (img, 2); - xlim = 0.5 * ((x(end) - x(1)) * c / (c - 1) * [-1, 1] + (x(1) + x(end))); + if (c > 1) + xlim = 0.5 * (diff (xdata) * c / (c - 1) * [-1, 1] + sum (xdata)); + elseif (numel (unique (x)) > 1) + xlim = xdata; + elseif (x(1) != 0) + xlim = [0, x]; + else + xlim = [0, 1]; + endif r = size (img, 1); - ylim = 0.5 * ((y(end) - y(1)) * r / (r - 1) * [-1, 1] + (y(1) + y(end))); - + if (r > 1) + ylim = 0.5 * (diff (ydata) * r / (r - 1) * [-1, 1] + sum (ydata)); + elseif (numel (unique (y)) > 1) + ylim = ydata; + elseif (y(1) != 0) + ylim = [0, y]; + else + ylim = [0, 1]; + endif + ca = gca (); tmp = __go_image__ (ca, "cdata", img, "xdata", xdata, "ydata", ydata, @@ -165,3 +181,11 @@ %! h = image (x, y, img); %! set (h, "cdatamapping", "scaled") +%!demo +%! M = 25; +%! img = 1 ./ rand (5, 11) - 1; +%! x = 10 * sort (rand (1, 9)); +%! y = sort (rand (1, 8)); +%! clf +%! image (x, y, img); +