annotate scripts/plot/appearance/pbaspect.m @ 17579:0c6750ace8b4

Fix input processing of 'mode' for daspect, pbaspect. * scripts/plot/appearance/daspect.m, scripts/plot/appearance/pbaspect.m: Use isnumeric, not isreal which catches strings, to test for input aspect ratio.
author Rik <rik@octave.org>
date Sun, 06 Oct 2013 07:02:43 -0700
parents 7bb76a22cde1
children d63878346099
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 12575
diff changeset
1 ## Copyright (C) 2010-2012 Ben Abbott
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11563
diff changeset
2 ##
11104
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
3 ## This file is part of Octave.
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
4 ##
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
6 ## under the terms of the GNU General Public License as published by
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
8 ## your option) any later version.
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
9 ##
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
13 ## General Public License for more details.
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10711
diff changeset
14 ##
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
18
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
19 ## -*- texinfo -*-
16491
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
20 ## @deftypefn {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( )
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
21 ## @deftypefnx {Function File} {} pbaspect (@var{plot_box_aspect_ratio})
16489
36dba9be680b doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents: 14245
diff changeset
22 ## @deftypefnx {Function File} {} pbaspect (@var{mode})
36dba9be680b doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents: 14245
diff changeset
23 ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode")
36dba9be680b doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents: 14245
diff changeset
24 ## @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{})
16491
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
25 ##
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
26 ## Query or set the plot box aspect ratio of the current axes.
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
27 ##
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
28 ## The aspect ratio is a normalized 3-element vector representing the rendered
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
29 ## lengths of the x, y, and z axes.
16491
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
30 ##
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
31 ## @code{pbaspect(@var{mode})}
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
32 ##
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
33 ## Set the plot box aspect ratio mode of the current axes. @var{mode} is
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 17175
diff changeset
34 ## either @qcode{"auto"} or @qcode{"manual"}.
16491
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
35 ##
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
36 ## @code{pbaspect ("mode")}
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
37 ##
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
38 ## Return the plot box aspect ratio mode of the current axes.
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
39 ##
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
40 ## @code{pbaspect (@var{hax}, @dots{})}
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
41 ##
b10a23fe80bb doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents: 16489
diff changeset
42 ## Operate on the axes in handle @var{hax} instead of the current axes.
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
43 ##
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
44 ## @seealso{axis, daspect, xlim, ylim, zlim}
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
45 ## @end deftypefn
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
46
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
47 ## Author: Ben Abbott <bpabbott@mac.com>
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
48 ## Created: 2010-01-26
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
49
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
50 function pbratio = pbaspect (varargin)
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
51
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
52 ## Grab axes handle if present
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
53 if (nargin > 0)
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
54 if (isscalar (varargin{1}) && isaxes (varargin{1}))
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
55 hax = varargin{1};
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
56 varargin = varargin(2:end);
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
57 else
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
58 hax = gca ();
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
59 endif
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
60 else
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
61 hax = gca ();
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
62 endif
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
63
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
64 nargin = numel (varargin);
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
65 if (nargin > 1)
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
66 print_usage ();
11113
a8ac114ec9ab Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 11104
diff changeset
67 endif
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
68
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
69 if (nargin == 0)
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
70 pbratio = get (hax, "plotboxaspectratio");
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
71 else
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
72 arg = varargin{1};
17579
0c6750ace8b4 Fix input processing of 'mode' for daspect, pbaspect.
Rik <rik@octave.org>
parents: 17572
diff changeset
73 if (isnumeric (arg))
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
74 if (numel (arg) == 2)
17175
4bb7ae321901 pbaspect.m: Fix typo in property name in cset 6a1aa61b5b16.
Rik <rik@octave.org>
parents: 17155
diff changeset
75 set (hax, "plotboxaspectratio", [arg, 1]);
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
76 elseif (numel (arg) == 3)
17175
4bb7ae321901 pbaspect.m: Fix typo in property name in cset 6a1aa61b5b16.
Rik <rik@octave.org>
parents: 17155
diff changeset
77 set (hax, "plotboxaspectratio", arg);
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
78 else
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
79 error ("pbaspect: PLOT_BOX_ASPECT_RATIO must be a 2 or 3 element vector");
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
80 endif
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
81 elseif (ischar (arg))
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
82 arg = tolower (arg);
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
83 switch (arg)
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
84 case "auto"
17175
4bb7ae321901 pbaspect.m: Fix typo in property name in cset 6a1aa61b5b16.
Rik <rik@octave.org>
parents: 17155
diff changeset
85 set (hax, "plotboxaspectratiomode", "auto");
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
86 case "manual"
17175
4bb7ae321901 pbaspect.m: Fix typo in property name in cset 6a1aa61b5b16.
Rik <rik@octave.org>
parents: 17155
diff changeset
87 set (hax, "plotboxaspectratiomode", "manual");
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
88 case "mode"
17175
4bb7ae321901 pbaspect.m: Fix typo in property name in cset 6a1aa61b5b16.
Rik <rik@octave.org>
parents: 17155
diff changeset
89 pbratio = get (hax, "plotboxaspectratiomode");
17155
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
90 otherwise
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
91 error ("pbaspect: Invalid mode <%s>", arg);
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
92 endswitch
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
93 else
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
94 print_usage ();
6a1aa61b5b16 pbaspect.m: Overhaul function using modern coding practices.
Rik <rik@octave.org>
parents: 16491
diff changeset
95 endif
11113
a8ac114ec9ab Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 11104
diff changeset
96 endif
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
97
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
98 endfunction
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
99
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
100
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
101 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
102 %! clf;
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
103 %! x = 0:0.01:4;
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
104 %! plot (x,cos(x), x,sin(x));
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
105 %! pbaspect ([1 1 1]);
14245
4506eade9f04 Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents: 14237
diff changeset
106 %! title ('plot box is square');
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
107
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
108 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
109 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
110 %! x = 0:0.01:4;;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
111 %! plot (x,cos(x), x,sin(x));
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
112 %! pbaspect ([2 1 1]);
14245
4506eade9f04 Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents: 14237
diff changeset
113 %! title ('plot box aspect ratio is 2x1');
10218
ce94aaa71a4f daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
114
11161
2e32236eaa90 Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents: 11120
diff changeset
115 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
116 %! clf;
11161
2e32236eaa90 Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents: 11120
diff changeset
117 %! x = 0:0.01:4;
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
118 %! plot (x,cos(x), x,sin(x));
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
119 %! daspect ([1 1 1]);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
120 %! pbaspect ([2 1 1]);
14245
4506eade9f04 Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents: 14237
diff changeset
121 %! title ('plot box is 2x1, and axes [0 4 -1 1]');
11161
2e32236eaa90 Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents: 11120
diff changeset
122