annotate scripts/plot/private/__plt__.m @ 16869:11dee6ef204c

__plt__.m: Eliminate unneeded input validation from leaf functions. * scripts/plot/private/__plt__.m: Eliminate unneed input validation from leaf functions __plt2ss__, __plt2sv__, __plt2vs__, __plt2vm, __plt2mm__, __plt2mv__. Use default arguments to simplify __plt1__ and __plt2__.
author Rik <rik@octave.org>
date Sat, 29 Jun 2013 18:56:33 -0700
parents 804d26cf8e5b
children 76bd90f6ba65
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: 12339
diff changeset
1 ## Copyright (C) 1993-2012 John W. Eaton
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
2 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
3 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
4 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
6 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
8 ## your option) any later version.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
9 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
13 ## General Public License for more details.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
14 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
15 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
17 ## <http://www.gnu.org/licenses/>.
245
16a24e76d6e0 [project @ 1993-12-03 02:00:15 by jwe]
jwe
parents: 4
diff changeset
18
8812
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 7017
diff changeset
19 ## -*- texinfo -*-
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 7017
diff changeset
20 ## @deftypefn {Function File} {} __plt__ (@var{caller}, @var{h}, @var{varargin})
6895
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6459
diff changeset
21 ## Undocumented internal function.
8812
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 7017
diff changeset
22 ## @end deftypefn
3402
9610d364e444 [project @ 2000-01-05 04:36:38 by jwe]
jwe
parents: 3178
diff changeset
23
2314
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
24 ## Author: jwe
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
25
6302
a5cd8b77e892 [project @ 2007-02-13 08:08:33 by jwe]
jwe
parents: 6264
diff changeset
26 function retval = __plt__ (caller, h, varargin)
5406
c49aec8a9080 [project @ 2005-07-08 15:25:43 by jwe]
jwe
parents: 5395
diff changeset
27
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6172
diff changeset
28 nargs = nargin - 2;
6146
1a6d826e92b5 [project @ 2006-11-09 03:13:11 by jwe]
jwe
parents: 6004
diff changeset
29
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6172
diff changeset
30 if (nargs > 0)
934
be867ddbe4aa [project @ 1994-11-17 04:23:41 by jwe]
jwe
parents: 904
diff changeset
31
5116
67320fb4ae5c [project @ 2005-01-25 03:57:01 by jwe]
jwe
parents: 5115
diff changeset
32 k = 1;
5119
f394f83ee1c4 [project @ 2005-01-25 22:34:05 by jwe]
jwe
parents: 5118
diff changeset
33
f394f83ee1c4 [project @ 2005-01-25 22:34:05 by jwe]
jwe
parents: 5118
diff changeset
34 x_set = false;
f394f83ee1c4 [project @ 2005-01-25 22:34:05 by jwe]
jwe
parents: 5118
diff changeset
35 y_set = false;
6459
5dc550e1f419 [project @ 2007-03-26 18:11:58 by jwe]
jwe
parents: 6405
diff changeset
36 property_set = false;
5dc550e1f419 [project @ 2007-03-26 18:11:58 by jwe]
jwe
parents: 6405
diff changeset
37 properties = {};
934
be867ddbe4aa [project @ 1994-11-17 04:23:41 by jwe]
jwe
parents: 904
diff changeset
38
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
39 hlegend = [];
14846
460a3c6d8bf1 maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents: 14431
diff changeset
40 fkids = get (gcf (), "children");
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14846
diff changeset
41 for i = 1 : numel (fkids)
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
42 if (ishandle (fkids (i)) && strcmp (get (fkids (i), "type"), "axes")
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
43 && (strcmp (get (fkids (i), "tag"), "legend")))
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
44 udata = get (fkids (i), "userdata");
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
45 if (! isempty (intersect (udata.handle, gca ())))
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
46 hlegend = fkids (i);
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
47 break;
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
48 endif
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
49 endif
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
50 endfor
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
51
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
52 setlgnd = false;
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
53 if (isempty (hlegend))
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
54 hlgnd = [];
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
55 tlgnd = {};
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
56 else
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
57 [hlgnd, tlgnd] = __getlegenddata__ (hlegend);
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
58 endif
10995
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
59
5116
67320fb4ae5c [project @ 2005-01-25 03:57:01 by jwe]
jwe
parents: 5115
diff changeset
60 ## Gather arguments, decode format, gather plot strings, and plot lines.
934
be867ddbe4aa [project @ 1994-11-17 04:23:41 by jwe]
jwe
parents: 904
diff changeset
61
6405
b298a4c12fc3 [project @ 2007-03-14 16:51:28 by jwe]
jwe
parents: 6302
diff changeset
62 retval = [];
b298a4c12fc3 [project @ 2007-03-14 16:51:28 by jwe]
jwe
parents: 6302
diff changeset
63
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6172
diff changeset
64 while (nargs > 0 || x_set)
5115
57372235194b [project @ 2005-01-24 18:38:45 by jwe]
jwe
parents: 4717
diff changeset
65
5119
f394f83ee1c4 [project @ 2005-01-25 22:34:05 by jwe]
jwe
parents: 5118
diff changeset
66 if (nargs == 0)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
67 ## Force the last plot when input variables run out.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
68 next_cell = {};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
69 next_arg = {""};
5118
ecbb290ba9ff [project @ 2005-01-25 22:10:26 by jwe]
jwe
parents: 5117
diff changeset
70 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
71 next_cell = varargin(k);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
72 next_arg = varargin{k++};
5116
67320fb4ae5c [project @ 2005-01-25 03:57:01 by jwe]
jwe
parents: 5115
diff changeset
73 endif
934
be867ddbe4aa [project @ 1994-11-17 04:23:41 by jwe]
jwe
parents: 904
diff changeset
74
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6172
diff changeset
75 nargs--;
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6172
diff changeset
76
6146
1a6d826e92b5 [project @ 2006-11-09 03:13:11 by jwe]
jwe
parents: 6004
diff changeset
77 if (ischar (next_arg) || iscellstr (next_arg))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
78 if (x_set)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
79 [options, valid] = __pltopt__ (caller, next_arg, false);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
80 if (! valid)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
81 if (nargs == 0)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
82 error ("%s: properties must appear followed by a value", caller);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
83 endif
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
84 properties = [properties, [next_cell, varargin(k++)]];
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
85 nargs--;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
86 continue;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
87 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
88 while (nargs > 0 && ischar (varargin{k}))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
89 if (nargs < 2)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
90 error ("%s: properties must appear followed by a value",
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
91 caller);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
92 endif
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
93 properties = [properties, varargin(k:k+1)];
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
94 k += 2;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
95 nargs -= 2;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
96 endwhile
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
97 endif
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
98 if (y_set)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
99 tmp = __plt2__ (h, x, y, options, properties);
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
100 [hlgnd, tlgnd, setlgnd] = __plt_key__ (tmp, options, hlgnd, tlgnd, setlgnd);
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
101 properties = {};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
102 retval = [retval; tmp];
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
103 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
104 tmp = __plt1__ (h, x, options, properties);
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
105 [hlgnd, tlgnd, setlgnd] = __plt_key__ (tmp, options, hlgnd, tlgnd, setlgnd);
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
106 properties = {};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
107 retval = [retval; tmp];
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
108 endif
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
109 x_set = false;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
110 y_set = false;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
111 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
112 error ("plot: no data to plot");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
113 endif
5116
67320fb4ae5c [project @ 2005-01-25 03:57:01 by jwe]
jwe
parents: 5115
diff changeset
114 elseif (x_set)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
115 if (y_set)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
116 options = __pltopt__ (caller, {""});
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
117 tmp = __plt2__ (h, x, y, options, properties);
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
118 [hlgnd, tlgnd, setlgnd] = __plt_key__ (tmp, options, hlgnd, tlgnd, setlgnd);
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
119 retval = [retval; tmp];
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
120 x = next_arg;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
121 y_set = false;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
122 properties = {};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
123 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
124 y = next_arg;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
125 y_set = true;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
126 endif
5116
67320fb4ae5c [project @ 2005-01-25 03:57:01 by jwe]
jwe
parents: 5115
diff changeset
127 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
128 x = next_arg;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
129 x_set = true;
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
130 endif
934
be867ddbe4aa [project @ 1994-11-17 04:23:41 by jwe]
jwe
parents: 904
diff changeset
131
5118
ecbb290ba9ff [project @ 2005-01-25 22:10:26 by jwe]
jwe
parents: 5117
diff changeset
132 endwhile
934
be867ddbe4aa [project @ 1994-11-17 04:23:41 by jwe]
jwe
parents: 904
diff changeset
133
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
134 if (setlgnd)
14846
460a3c6d8bf1 maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents: 14431
diff changeset
135 legend (gca (), hlgnd, tlgnd);
10995
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
136 endif
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
137 else
10730
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10679
diff changeset
138 error ("__plt__: invalid number of arguments");
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
139 endif
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
140
6004
01556febbaaf [project @ 2006-09-26 21:16:52 by jwe]
jwe
parents: 5958
diff changeset
141 endfunction
10995
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
142
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
143 function [hlgnd, tlgnd, setlgnd] = __plt_key__ (h, options, hlgnd, tlgnd, setlgnd)
10995
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
144 n = numel (h);
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
145 if (numel (options) == 1)
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
146 options = repmat (options(:), n, 1);
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
147 endif
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
148
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
149 for i = 1 : n
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
150 key = options.key;
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
151 if (! isempty (key))
11462
aed2c50c3082 legend.m: legend with more than two inline keys (bug 31991). Add/modifyy demos.
Ben Abbott <bpabbott@mac.com>
parents: 11421
diff changeset
152 hlgnd = [hlgnd(:); h(i)];
10995
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
153 tlgnd = {tlgnd{:}, key};
12339
eda5eabd5d0b Fix for inline legends (#32022, #32343)
David Bateman <dbateman@free.fr>
parents: 11523
diff changeset
154 setlgnd = true;
10995
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
155 endif
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
156 endfor
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
157 endfunction
e81914f3921f Update legend code to support fltk (fixes #29348 and partially fixes #30461)
David Bateman <dbateman@free.fr>
parents: 10730
diff changeset
158
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
159 function retval = __plt1__ (h, x1, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
160
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
161 if (nargin < 2 || nargin > 4)
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
162 print_usage ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
163 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
164
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
165 if (nargin < 3 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
166 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
167 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
168
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
169 if (! isstruct (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
170 error ("__plt1__: options must be a struct array");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
171 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
172
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
173 [nr, nc] = size (x1);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
174 if (nr == 1)
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
175 x1 = x1.';
14431
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
176 [nr, nc] = deal (nc, nr); # Swap rows and columns
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
177 endif
14431
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
178 if (iscomplex (x1))
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
179 x1_i = imag (x1);
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
180 if (any ((x1_i(:))))
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
181 x2 = x1_i;
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
182 x1 = real (x1);
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
183 else
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
184 x2 = x1;
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
185 x1 = (1:nr)';
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
186 endif
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
187 else
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
188 x2 = x1;
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
189 x1 = (1:nr)';
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
190 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
191
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
192 retval = __plt2__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
193
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
194 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
195
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
196 function retval = __plt2__ (h, x1, x2, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
197
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
198 if (nargin < 3 || nargin > 5)
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
199 print_usage ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
200 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
201
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
202 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
203 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
204 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
205
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
206 if (! isstruct (options))
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
207 error ("__plt2__: options must be a struct array");
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
208 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
209
14431
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
210 if (islogical (x1))
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
211 x1 = int8 (x1);
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
212 elseif (iscomplex ((x1)))
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
213 x1 = real (x1);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
214 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
215
14431
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
216 if (islogical (x2))
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
217 x2 = int8 (x2);
f22a9555aa69 Fix 2D plotting of boolean values (bug #33607)
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
218 elseif (iscomplex (x2))
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
219 x2 = real (x2);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
220 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
221
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
222 h_set = false;
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
223 if (isempty (x1) && isempty (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
224 retval = zeros (0, 1);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
225 elseif (isscalar (x1))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
226 if (isscalar (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
227 retval = __plt2ss__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
228 elseif (isvector (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
229 retval = __plt2sv__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
230 else
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
231 error ("__plt2__: invalid data for plotting");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
232 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
233 elseif (isvector (x1))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
234 if (isscalar (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
235 retval = __plt2vs__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
236 elseif (isvector (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
237 retval = __plt2vv__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
238 elseif (ismatrix (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
239 retval = __plt2vm__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
240 else
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
241 error ("__plt2__: invalid data for plotting");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
242 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
243 elseif (ismatrix (x1))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
244 if (isvector (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
245 retval = __plt2mv__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
246 elseif (ismatrix (x2))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
247 retval = __plt2mm__ (h, x1, x2, options, properties);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
248 else
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
249 error ("__plt2__: invalid data for plotting");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
250 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
251 else
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
252 error ("__plt2__: invalid data for plotting");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
253 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
254
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
255 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
256
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
257 function retval = __plt2mm__ (h, x, y, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
258
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
259 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
260 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
261 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
262
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
263 [x_nr, x_nc] = size (x);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
264 [y_nr, y_nc] = size (y);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
265
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
266 if (x_nr != y_nr && x_nc != y_nc)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
267 error ("__plt2mm__: matrix dimensions must match");
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
268 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
269
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
270 if (numel (options) == 1)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
271 options = repmat (options(:), x_nc, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
272 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
273 retval = zeros (x_nc, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
274 for i = 1:x_nc
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
275 linestyle = options(i).linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
276 marker = options(i).marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
277 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
278 [linestyle, marker] = __next_line_style__ ();
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
279 endif
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
280 color = options(i).color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
281 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
282 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
283 endif
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
284
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
285 retval(i) = line (x(:,i), y(:,i), "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
286 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
287 "marker", marker, properties{:});
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
288 endfor
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
289
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
290 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
291
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
292 function retval = __plt2mv__ (h, x, y, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
293
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
294 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
295 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
296 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
297
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
298 y = y(:);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
299 [y_nr, y_nc] = size (y);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
300 [x_nr, x_nc] = size (x);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
301
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
302 if (x_nr == y_nr)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
303 ## Correctly oriented. Do nothing.
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
304 elseif (x_nc == y_nr)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
305 x = x.';
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
306 [x_nr, x_nc] = deal (x_nc, x_nr);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
307 else
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
308 error ("__plt2mv__: matrix dimensions must match");
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
309 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
310
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
311 if (numel (options) == 1)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
312 options = repmat (options(:), x_nc, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
313 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
314 retval = zeros (x_nc, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
315 for i = 1:x_nc
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
316 linestyle = options(i).linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
317 marker = options(i).marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
318 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
319 [linestyle, marker] = __next_line_style__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
320 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
321 color = options(i).color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
322 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
323 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
324 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
325
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
326 retval(i) = line (x(:,i), y, "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
327 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
328 "marker", marker, properties{:});
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
329 endfor
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
330
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
331 endfunction
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
332
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
333 function retval = __plt2ss__ (h, x, y, options, properties = {})
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
334
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
335 if (nargin < 4 || isempty (options))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
336 options = __default_plot_options__ ();
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
337 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
338
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
339 if (numel (options) > 1)
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
340 options = options(1);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
341 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
342
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
343 linestyle = options.linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
344 marker = options.marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
345 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
346 ## If unspecified, marker for a single point is always "."
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
347 linestyle = "-";
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
348 marker = ".";
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
349 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
350 color = options.color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
351 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
352 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
353 endif
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
354
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
355 retval = line (x, y, "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
356 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
357 "marker", marker, properties{:});
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
358
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
359 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
360
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
361 function retval = __plt2sv__ (h, x, y, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
362
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
363 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
364 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
365 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
366
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
367 len = numel (y);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
368 if (numel (options) == 1)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
369 options = repmat (options(:), len, 1);
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
370 endif
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
371 retval = zeros (len, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
372 for i = 1:len
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
373 linestyle = options(i).linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
374 marker = options(i).marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
375 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
376 [linestyle, marker] = __next_line_style__ ();
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
377 endif
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
378 color = options(i).color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
379 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
380 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
381 endif
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
382
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
383 retval(i) = line (x, y(i), "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
384 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
385 "marker", marker, properties{:});
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
386 endfor
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
387
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
388 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
389
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
390 function retval = __plt2vm__ (h, x, y, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
391
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
392 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
393 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
394 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
395
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
396 x = x(:);
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
397 [x_nr, x_nc] = size (x);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
398 [y_nr, y_nc] = size (y);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
399
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
400 if (x_nr == y_nr)
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
401 ## Correctly oriented. Do nothing.
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
402 elseif (x_nr == y_nc)
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
403 y = y.';
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
404 [y_nr, y_nc] = deal (y_nc, y_nr);
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
405 else
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
406 error ("__plt2vm__: matrix dimensions must match");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
407 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
408
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
409 if (numel (options) == 1)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
410 options = repmat (options(:), y_nc, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
411 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
412 retval = zeros (y_nc, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
413 for i = 1:y_nc
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
414 linestyle = options(i).linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
415 marker = options(i).marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
416 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
417 [linestyle, marker] = __next_line_style__ ();
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
418 endif
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
419 color = options(i).color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
420 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
421 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
422 endif
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
423
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
424 retval(i) = line (x, y(:,i), "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
425 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
426 "marker", marker, properties{:});
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
427 endfor
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
428
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
429 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
430
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
431 function retval = __plt2vs__ (h, x, y, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
432
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
433 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
434 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
435 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
436
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
437 len = numel (x);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
438 if (numel (options) == 1)
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
439 options = repmat (options(:), len, 1);
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
440 endif
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
441 retval = zeros (len, 1);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
442 for i = 1:len
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
443 linestyle = options(i).linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
444 marker = options(i).marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
445 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
446 [linestyle, marker] = __next_line_style__ ();
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
447 endif
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
448 color = options(i).color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
449 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
450 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
451 endif
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
452
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
453 retval(i) = line (x(i), y, "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
454 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
455 "marker", marker, properties{:});
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
456 endfor
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
457
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
458 endfunction
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
459
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
460 function retval = __plt2vv__ (h, x, y, options, properties = {})
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
461
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
462 if (nargin < 4 || isempty (options))
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
463 options = __default_plot_options__ ();
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
464 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
465
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
466 if (numel (options) > 1)
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
467 options = options(1);
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
468 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
469
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
470 x = x(:);
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
471 y = y(:);
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
472
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
473 if (length (x) != length (y))
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
474 error ("__plt2vv__: vector lengths must match");
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
475 endif
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
476
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
477 linestyle = options.linestyle;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
478 marker = options.marker;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
479 if (isempty (marker) && isempty (linestyle))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
480 [linestyle, marker] = __next_line_style__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
481 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
482 color = options.color;
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
483 if (isempty (color))
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
484 color = __next_line_color__ ();
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
485 endif
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
486
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
487 retval = line (x, y, "color", color,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
488 "linestyle", linestyle,
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
489 "marker", marker, properties{:});
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
490
9896
1aeb39118764 convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
491 endfunction
16869
11dee6ef204c __plt__.m: Eliminate unneeded input validation from leaf functions.
Rik <rik@octave.org>
parents: 16857
diff changeset
492