Mercurial > hg > octave-lyh
diff scripts/plot/colorbar.m @ 7189:e8d953d03f6a
[project @ 2007-11-26 20:42:09 by dbateman]
author | dbateman |
---|---|
date | Mon, 26 Nov 2007 20:42:11 +0000 |
parents | |
children | b48a21816f2e |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/plot/colorbar.m @@ -0,0 +1,149 @@ +## Copyright (C) 2007 David Bateman +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} colorbar (@var{s}) +## @deftypefnx {Function File} {} colorbar ('peer', @var{h}, @dots{}) +## Adds a colorbar to the current axes. Valid values for @var{s} are +## +## @table @asis +## @item 'EastOutside' +## Place the colorbar outside the plot to the right. This is the default. +## @item 'East' +## Place the colorbar inside the plot to the right. +## @item 'WestOutside' +## Place the colorbar outside the plot to the left. +## @item 'West' +## Place the colorbar inside the plot to the left. +## @item 'NorthOutside' +## Place the colorbar above the plot. +## @item 'North' +## Place the colorbar at the top of the plot. +## @item 'SouthOutside' +## Place the colorbar under the plot. +## @item 'South' +## Place the colorbar at the bottom of the plot. +## @item 'Off', 'None' +## Remove any existing colorbar from the plot. +## @end table +## +## If the argument 'peer' is given, then the following argument is treated a +## the axes handle on which to add the colorbar. +## @end deftypefn + + +## PKG_ADD: mark_as_command colorbar + +function colorbar (varargin) + + if (nargin > 0 && strcmpi(varargin{1}, "peer")) + if (nargin > 1) + ax = varargin{2}; + if (!isscalar (ax) || !ishandle (ax) || + strcmp (get (ax, "type"), "axes")) + error ("colorbar: expecting an axes handle following 'peer'"); + endif + else + error ("colorbar: misisng axes handle after 'peer'"); + endif + else + ax = gca (); + endif + + pos = "eastoutside"; + for i = 1 : length (varargin) + arg = varargin {i}; + if (length(arg) < 1) + pos = "eastoutside"; + elseif (ischar (arg)) + arg = tolower (arg); + if (strcmp (arg, "off") || strcmp (arg, "none")) + pos = "none"; + elseif (strcmp (arg, "north") || strcmp (arg, "south") || + strcmp (arg, "east") || strcmp (arg, "west") || + strcmp (arg, "northoutside") || strcmp (arg, "southoutside") || + strcmp (arg, "eastoutside") || strcmp (arg, "westoutside")) + pos = arg; + else + error ("colorbar: unrecognized position argument"); + endif + else + error ("colorbar: expecting string arguments"); + endif + endfor + + set (ax, "__colorbar__", pos); +endfunction + + +%!demo +%! hold off; +%! close all; +%! n = 64; x = kron (1:n,ones(n,1)); x = abs(x - x.'); +%! imagesc(x) +%! colorbar(); + +%!demo +%! hold off; +%! n = 64; x = kron (1:n,ones(n,1)); x = abs(x - x.'); +%! imagesc(x) +%! colorbar("westoutside"); + +%!demo +%! hold off; +%! n = 64; x = kron (1:n,ones(n,1)); x = abs(x - x.'); +%! imagesc(x) +%! colorbar("northoutside"); + +%!demo +%! hold off; +%! n = 64; x = kron (1:n,ones(n,1)); x = abs(x - x.'); +%! imagesc(x) +%! colorbar("southoutside"); + +%!demo +%! hold off; +%! subplot(2,2,1) +%! contour(peaks()) +%! colorbar("east"); +%! subplot(2,2,2) +%! contour(peaks()) +%! colorbar("west"); +%! subplot(2,2,3) +%! contour(peaks()) +%! colorbar("north"); +%! subplot(2,2,4) +%! contour(peaks()) +%! colorbar("south"); + +%!demo +%! hold off; +%! n = 64; x = kron (1:n,ones(n,1)); x = abs(x - x.'); +%! subplot(2,2,1) +%! imagesc(x) +%! colorbar(); +%! subplot(2,2,2) +%! imagesc(x) +%! colorbar("westoutside"); +%! subplot(2,2,3) +%! imagesc(x) +%! colorbar("northoutside"); +%! subplot(2,2,4) +%! imagesc(x) +%! colorbar("southoutside"); +