Mercurial > hg > octave-lyh
annotate scripts/plot/pbaspect.m @ 12812:4c93cc41da15 stable
codesprint: add demo for surf.m and surfc.m
author | Kai Habel <kai.habel@gmx.de> |
---|---|
date | Sat, 16 Jul 2011 20:56:20 +0200 |
parents | d0b799dafede |
children | 72c96de7a403 |
rev | line source |
---|---|
11523 | 1 ## Copyright (C) 2010-2011 Ben Abbott |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11563
diff
changeset
|
2 ## |
11104 | 3 ## This file is part of Octave. |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
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 -*- |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
20 ## @deftypefn {Function File} {} pbaspect (@var{plot_box_aspect_ratio}) |
10711
fbd7843974fa
Periodic grammar check of documentation files to ensure common format.
Rik <octave@nomad.inbox5.com>
parents:
10218
diff
changeset
|
21 ## Set the plot box aspect ratio of the current axes. The aspect ratio |
11563
3c6e8aaa9555
Grammarcheck m-files before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
22 ## is a normalized 3-element vector representing the rendered lengths of |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
23 ## the x, y, and z-axes. |
12526
f8ea3eabcb85
Add daspect, pbaspect functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
24 ## |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
25 ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( ) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
26 ## Return the plot box aspect ratio of the current axes. |
12526
f8ea3eabcb85
Add daspect, pbaspect functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
27 ## |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
28 ## @deftypefnx {Function File} {} pbaspect (@var{mode}) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
29 ## Set the plot box aspect ratio mode of the current axes. |
12526
f8ea3eabcb85
Add daspect, pbaspect functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
30 ## |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
31 ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode") |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
32 ## Return the plot box aspect ratio mode of the current axes. |
12526
f8ea3eabcb85
Add daspect, pbaspect functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
33 ## |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
34 ## @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{}) |
12575
d0b799dafede
Grammarcheck files for 3.4.1 release.
Rik <octave@nomad.inbox5.com>
parents:
12526
diff
changeset
|
35 ## Use the axes, with handle @var{hax}, instead of the current axes. |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
36 ## |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
37 ## @seealso{axis, daspect, xlim, ylim, zlim} |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
38 ## @end deftypefn |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
39 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
40 ## Author: Ben Abbott <bpabbott@mac.com> |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
41 ## Created: 2010-01-26 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
42 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
43 function varargout = pbaspect (varargin) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
44 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
45 hax = gca (); |
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 if (nargin > 0) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
48 if (isscalar (varargin{1}) && ishandle (varargin{1})) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
49 hax = varargin{1}; |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
50 varargin = varargin(2:end); |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
51 endif |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
52 endif |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
53 if (numel (varargin) > 0) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
54 if (numel (varargin) == 1) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
55 if (ischar (varargin{1}) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
56 && any (strcmpi (varargin{1}, {"mode", "manual", "auto"}))) |
11120
a44f979a35ce
style fixes for some .m files
John W. Eaton <jwe@octave.org>
parents:
11113
diff
changeset
|
57 switch (varargin{1}) |
a44f979a35ce
style fixes for some .m files
John W. Eaton <jwe@octave.org>
parents:
11113
diff
changeset
|
58 case "mode" |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
59 if (nargout < 2) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
60 varargout{1} = get (hax, "plotboxaspectratiomode"); |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
61 return |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
62 else |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
63 error ("pbaspect: only one output is allowed"); |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
11104
diff
changeset
|
64 endif |
11120
a44f979a35ce
style fixes for some .m files
John W. Eaton <jwe@octave.org>
parents:
11113
diff
changeset
|
65 case "manual" |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
66 set (hax, "plotboxaspectratiomode", "manual"); |
11120
a44f979a35ce
style fixes for some .m files
John W. Eaton <jwe@octave.org>
parents:
11113
diff
changeset
|
67 case "auto" |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
68 set (hax, "plotboxaspectratiomode", "auto"); |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
69 endswitch |
11310
ffbcb0edfbda
Fix handling of input array of length 2 in daspect.m and pbaspect.m
Ben Abbott <bpabbott@mac.com>
parents:
11161
diff
changeset
|
70 elseif (isreal (varargin{1}) && numel (varargin{1}) == 2) |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
71 set (hax, "plotboxaspectratio", [varargin{1}, 1]); |
11310
ffbcb0edfbda
Fix handling of input array of length 2 in daspect.m and pbaspect.m
Ben Abbott <bpabbott@mac.com>
parents:
11161
diff
changeset
|
72 elseif (isreal (varargin{1}) && numel (varargin{1}) == 3) |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
73 set (hax, "plotboxaspectratio", varargin{1}); |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
74 else |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
75 error ("pbaspect: invalid input"); |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
76 endif |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
77 elseif (numel (varargin) > 1) |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
78 error ("pbaspect: too many inputs"); |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
79 endif |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
80 elseif (nargout == 0) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
81 print_usage (); |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
11104
diff
changeset
|
82 endif |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
83 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
84 if (nargout == 1) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
85 varargout{1} = get (hax, "plotboxaspectratio"); |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
86 elseif (nargout > 1) |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
87 error ("pbaspect: only one output is allowed"); |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
11104
diff
changeset
|
88 endif |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
89 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
90 endfunction |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
91 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
92 %!demo |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
93 %! x = 0:0.01:4; |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
94 %! clf |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
95 %! plot (x, cos (x), x, sin (x)) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
96 %! pbaspect ([1 1 1]) |
11161
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
97 %! title ("plot box should be square") |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
98 |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
99 %!demo |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
100 %! x = 0:0.01:4; |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
101 %! clf |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
102 %! plot (x, cos (x), x, sin (x)) |
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
103 %! pbaspect ([2 1 1]) |
11161
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
104 %! title ("plot box aspect ratio should be 2x1") |
10218
ce94aaa71a4f
daspect.m, pbaspect.m: New functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
105 |
11161
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
106 %!demo |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
107 %! x = 0:0.01:4; |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
108 %! clf |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
109 %! plot (x, cos (x), x, sin (x)) |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
110 %! daspect ([1 1 1]) |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
111 %! pbaspect ([2 1 1]) |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
112 %! title ("plot box should be 2x1, and axes [0 4 -1 1]") |
2e32236eaa90
Add demos setting both data and plotbox aspect ratios.
Ben Abbott <bpabbott@mac.com>
parents:
11120
diff
changeset
|
113 |