annotate scripts/plot/util/linkaxes.m @ 19774:f64cdbe11621

doc: Periodic spellcheck of documentation. * aspell-octave.en.pws: Add new audio keywords to private dictionary. * audiodevinfo.cc: Wrap DriverVersion with @nospell directive.
author Rik <rik@octave.org>
date Tue, 13 Jan 2015 22:11:45 -0800
parents 3136e3f8e631
children 4197fc428c7d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
1 ## Copyright (C) 2014 Willem Atsma
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
2 ##
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
3 ## This file is part of Octave.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
4 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
8 ## your option) any later version.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
9 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
13 ## General Public License for more details.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
14 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
18
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
19 ## -*- texinfo -*-
19132
3136e3f8e631 linkaxes.m: Fix unbalanced parentheses warning in Texinfo.
Rik <rik@octave.org>
parents: 18896
diff changeset
20 ## @deftypefn {Function File} {} linkaxes (@var{hax})
3136e3f8e631 linkaxes.m: Fix unbalanced parentheses warning in Texinfo.
Rik <rik@octave.org>
parents: 18896
diff changeset
21 ## @deftypefnx {Function File} {} linkaxes (@var{hax}, @var{optstr})
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
22 ## Link the axis limits of 2-D plots such that a change in one is
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
23 ## propagated to the others.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
24 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
25 ## The axes handles to be linked are passed as the first argument @var{hax}.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
26 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
27 ## The optional second argument is a string which defines which axis limits
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
28 ## will be linked. The possible values for @var{optstr} are:
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
29 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
30 ## @table @asis
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
31 ## @item @qcode{"x"}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
32 ## Link x-axes
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
33 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
34 ## @item @qcode{"y"}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
35 ## Link y-axes
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
36 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
37 ## @item @qcode{"xy"} (default)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
38 ## Link both axes
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
39 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
40 ## @item @qcode{"off"}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
41 ## Turn off linking
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
42 ## @end table
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
43 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
44 ## If unspecified the default is to link both X and Y axes.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
45 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
46 ## When linking, the limits from the first axes in @var{hax} are applied to the
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
47 ## other axes in the list. Subsequent changes to any one of the axes will be
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
48 ## propagated to the others.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
49 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
50 ## @seealso{linkprop, addproperty}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
51 ## @end deftypefn
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
52
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
53 ## Author: Willem Atsma willem.atsma at tanglebridge.com
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
54 ## Created: 2014-03-18
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
55
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
56 function linkaxes (hax, optstr = "xy")
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
57
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
58 if (nargin < 1 || nargin > 2)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
59 print_usage ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
60 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
61
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
62 if (numel (hax) < 2)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
63 error ("linkaxes: HAX must contain at least 2 handles");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
64 elseif (! all (isaxes (hax(:))))
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
65 error ("linkaxes: HAX must be a vector of axes handles");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
66 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
67
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
68 ## Check if axes are linked already and clear if found.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
69 ## Otherwise, add the necessary linkaxes_data property.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
70 for i = 1:length (hax)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
71 if (isprop (hax(i), "linkaxes_data"))
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
72 hld = get (hax(i), "linkaxes_data");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
73 try
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
74 rmappdata (hld, "linkprop_data");
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
75 end_try_catch
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
76 else
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
77 addproperty ("linkaxes_data", hax(i), "any");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
78 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
79 endfor
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
80
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
81 switch (optstr)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
82 case "x"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
83 hlink = linkprop (hax, "xlim");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
84 case "y"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
85 hlink = linkprop (hax, "ylim");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
86 case "xy"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
87 hlink = linkprop (hax, {"xlim" "ylim"});
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
88 case "off"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
89 ## do nothing - link already deleted
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
90 hlink = [];
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
91 otherwise
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
92 error ("linkaxes: unrecognized OPTSTR '%s'", optstr);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
93 endswitch
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
94
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
95 if (! isempty (hlink))
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
96 setappdata (hax(1), "linkprop_data", hlink);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
97 set (hax, "linkaxes_data", hax(1));
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
98 else
18896
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18894
diff changeset
99 set (hax, "linkaxes_data", []);
18894
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
100 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
101
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
102 endfunction
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
103
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
104
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
105 %!demo
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
106 %! clf;
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
107 %! hax1 = subplot (3,1,1);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
108 %! bar (rand (4, 1), 'facecolor', 'r');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
109 %! hax2 = subplot (3,1,2);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
110 %! bar (5*rand (4, 1), 'facecolor', 'g');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
111 %! hax3 = subplot (3,1,3);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
112 %! bar (10*rand (4, 1), 'facecolor', 'b');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
113 %! input ('Type <RETURN> to link axes');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
114 %! linkaxes ([hax1, hax2, hax3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
115 %! input ('Type <RETURN> to change ylim');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
116 %! ylim (hax3, [0 10]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
117
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
118 %!test
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
119 %! hf1 = figure ("visible", "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
120 %! hax1 = axes ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
121 %! plot (1:10);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
122 %! hf2 = figure ("visible", "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
123 %! hax2 = axes ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
124 %! plot (10:-1:1, "-*g");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
125 %! hf3 = figure ("visible", "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
126 %! hax3 = axes ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
127 %! plot (1:10:100, "-xb");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
128 %! unwind_protect
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
129 %! linkaxes ([hax1, hax2, hax3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
130 %! ## Test initial values taken from first object in list
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
131 %! assert (xlim (hax3), [0 10]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
132 %! assert (ylim (hax3), [0 10]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
133 %! ## Test linking
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
134 %! xlim (hax2, [2 8]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
135 %! assert (xlim (hax1), [2 8]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
136 %! assert (xlim (hax3), [2 8]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
137 %! ylim (hax3, "auto");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
138 %! assert (ylim (hax1), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
139 %! assert (ylim (hax2), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
140 %! ## Test re-linking removes old link
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
141 %! linkaxes ([hax1, hax2]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
142 %! ylim (hax3, [0 50]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
143 %! assert (ylim (hax1), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
144 %! assert (ylim (hax2), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
145 %! xlim (hax1, [0 4]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
146 %! assert (xlim (hax2), [0 4]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
147 %! ## Test linking of remaining objects after deletion of one object
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
148 %! linkaxes ([hax1, hax2, hax3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
149 %! xlim (hax2, [0 1]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
150 %! assert (xlim (hax1), [0 1]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
151 %! assert (xlim (hax3), [0 1]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
152 %! delete (hax2);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
153 %! xlim (hax3, [0 2]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
154 %! assert (xlim (hax1), [0 2]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
155 %! ## Test deletion of link
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
156 %! linkaxes ([hax1, hax3], "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
157 %! xlim (hax3, [0 3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
158 %! assert (xlim (hax1), [0 2]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
159 %! unwind_protect_cleanup
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
160 %! close ([hf1 hf2 hf3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
161 %! end_unwind_protect
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
162
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
163 %% Test input validation
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
164 %!error linkaxes ()
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
165 %!error linkaxes (1,2,3)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
166 %!error <HAX must be a vector of axes handles> linkaxes ([pi, e])
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
167