annotate scripts/plot/util/linkaxes.m @ 31212:55415fa6a20f

svgconvert: Use Lossless encoding of images when available (bug #52193) * acinclude.m4: Check that QPainter::LosslessImageRendering flag is available. * octave-svgconvert.cc (draw): Use new flag if available. * print.m (doc): Update word of caution about svgconvert and images.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Mon, 29 Aug 2022 16:36:34 +0200
parents 796f54d4ddbf
children 597f3ee61a48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ########################################################################
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 ##
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
3 ## Copyright (C) 2014-2022 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
4 ##
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
18731
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18729
diff changeset
7 ##
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
8 ## This file is part of Octave.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
9 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23220
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
11 ## under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23220
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22446
diff changeset
13 ## (at your option) any later version.
18729
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 ## 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
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22446
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22446
diff changeset
18 ## GNU General Public License for more details.
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
19 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
20 ## 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
21 ## along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23220
diff changeset
22 ## <https://www.gnu.org/licenses/>.
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 ##
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ########################################################################
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
25
18731
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18729
diff changeset
26 ## -*- texinfo -*-
20852
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20173
diff changeset
27 ## @deftypefn {} {} linkaxes (@var{hax})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20173
diff changeset
28 ## @deftypefnx {} {} linkaxes (@var{hax}, @var{optstr})
20173
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19833
diff changeset
29 ## Link the axis limits of 2-D plots such that a change in one is propagated
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19833
diff changeset
30 ## to the others.
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
31 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
32 ## 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
33 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
34 ## 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
35 ## 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
36 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
37 ## @table @asis
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
38 ## @item @qcode{"x"}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
39 ## Link x-axes
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
40 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
41 ## @item @qcode{"y"}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
42 ## Link y-axes
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 ## @item @qcode{"xy"} (default)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
45 ## Link both axes
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
46 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
47 ## @item @qcode{"off"}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
48 ## Turn off linking
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
49 ## @end table
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
50 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
51 ## 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
52 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
53 ## 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
54 ## 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
55 ## propagated to the others.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
56 ##
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
57 ## @seealso{linkprop, addproperty}
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
58 ## @end deftypefn
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
59
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
60 function linkaxes (hax, optstr = "xy")
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
61
28789
28de41192f3c Eliminate unneeded verification of nargin, nargout in m-files.
Rik <rik@octave.org>
parents: 27985
diff changeset
62 if (nargin < 1)
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
63 print_usage ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
64 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
65
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
66 if (numel (hax) < 2)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
67 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
68 elseif (! all (isaxes (hax(:))))
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
69 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
70 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
71
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
72 ## 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
73 ## Otherwise, add the necessary linkaxes_data property.
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
74 for i = 1:length (hax)
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
75 if (isprop (hax(i), "linkaxes_data"))
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
76 hld = get (hax(i), "linkaxes_data");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
77 try
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
78 rmappdata (hld, "linkprop_data");
18731
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18729
diff changeset
79 end_try_catch
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
80 else
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
81 addproperty ("linkaxes_data", hax(i), "any");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
82 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
83 endfor
18731
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18729
diff changeset
84
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19697
diff changeset
85 switch (optstr)
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
86 case "x"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
87 hlink = linkprop (hax, "xlim");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
88 case "y"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
89 hlink = linkprop (hax, "ylim");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
90 case "xy"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
91 hlink = linkprop (hax, {"xlim" "ylim"});
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
92 case "off"
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
93 ## do nothing - link already deleted
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
94 hlink = [];
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
95 otherwise
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
96 error ("linkaxes: unrecognized OPTSTR '%s'", optstr);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
97 endswitch
18731
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18729
diff changeset
98
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
99 if (! isempty (hlink))
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
100 setappdata (hax(1), "linkprop_data", hlink);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
101 set (hax, "linkaxes_data", hax(1));
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
102 else
18731
65f19ac3cd1b linkaxes.m: Trim extra spaces at EOL.
Rik <rik@octave.org>
parents: 18729
diff changeset
103 set (hax, "linkaxes_data", []);
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
104 endif
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
105
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
106 endfunction
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
107
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
108
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
109 %!demo
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
110 %! clf;
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
111 %! hax1 = subplot (3,1,1);
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
112 %! bar (rand (4, 1), "facecolor", "r");
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
113 %! hax2 = subplot (3,1,2);
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
114 %! bar (5*rand (4, 1), "facecolor", "g");
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
115 %! hax3 = subplot (3,1,3);
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
116 %! bar (10*rand (4, 1), "facecolor", "b");
22446
ec9dca76189c Reword input prompts in %!demo blocks for consistency
Mike Miller <mtmiller@octave.org>
parents: 22323
diff changeset
117 %! input ("Press <enter> to link axes: ");
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
118 %! linkaxes ([hax1, hax2, hax3]);
22446
ec9dca76189c Reword input prompts in %!demo blocks for consistency
Mike Miller <mtmiller@octave.org>
parents: 22323
diff changeset
119 %! input ("Press <enter> to change ylim: ");
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
120 %! ylim (hax3, [0 10]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
121
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
122 %!test
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
123 %! hf1 = figure ("visible", "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
124 %! hax1 = axes ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
125 %! plot (1:10);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
126 %! hf2 = figure ("visible", "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
127 %! hax2 = axes ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
128 %! plot (10:-1:1, "-*g");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
129 %! hf3 = figure ("visible", "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
130 %! hax3 = axes ();
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
131 %! plot (1:10:100, "-xb");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
132 %! unwind_protect
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
133 %! linkaxes ([hax1, hax2, hax3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
134 %! ## 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
135 %! assert (xlim (hax3), [0 10]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
136 %! assert (ylim (hax3), [0 10]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
137 %! ## Test linking
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
138 %! xlim (hax2, [2 8]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
139 %! assert (xlim (hax1), [2 8]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
140 %! assert (xlim (hax3), [2 8]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
141 %! ylim (hax3, "auto");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
142 %! assert (ylim (hax1), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
143 %! assert (ylim (hax2), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
144 %! ## Test re-linking removes old link
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
145 %! linkaxes ([hax1, hax2]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
146 %! ylim (hax3, [0 50]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
147 %! assert (ylim (hax1), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
148 %! assert (ylim (hax2), [0 100]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
149 %! xlim (hax1, [0 4]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
150 %! assert (xlim (hax2), [0 4]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
151 %! ## 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
152 %! linkaxes ([hax1, hax2, hax3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
153 %! xlim (hax2, [0 1]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
154 %! assert (xlim (hax1), [0 1]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
155 %! assert (xlim (hax3), [0 1]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
156 %! delete (hax2);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
157 %! xlim (hax3, [0 2]);
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 %! ## Test deletion of link
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
160 %! linkaxes ([hax1, hax3], "off");
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
161 %! xlim (hax3, [0 3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
162 %! assert (xlim (hax1), [0 2]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
163 %! unwind_protect_cleanup
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
164 %! close ([hf1 hf2 hf3]);
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
165 %! end_unwind_protect
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
166
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19697
diff changeset
167 ## Test input validation
28886
d8318c12d903 test: remove unnecessary BIST tests in m-files checking for excessive number of inputs.
Rik <rik@octave.org>
parents: 28789
diff changeset
168 %!error <Invalid call> linkaxes ()
18729
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents:
diff changeset
169 %!error <HAX must be a vector of axes handles> linkaxes ([pi, e])