annotate scripts/plot/private/__stem__.m @ 10549:95c3e38098bf

Untabify .m scripts
author Rik <code@nomad.inbox5.com>
date Fri, 23 Apr 2010 11:28:50 -0700
parents 4516a0c97ced
children 988d2bd6bacd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8812
diff changeset
1 ## Copyright (C) 2006, 2007, 2008, 2009 Michel D. Schmid
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
2 ##
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
3 ## This file is part of Octave.
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
4 ##
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
8 ## your option) any later version.
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
9 ##
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
13 ## General Public License for more details.
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
14 ##
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
18
8812
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 8507
diff changeset
19 ## -*- texinfo -*-
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 8507
diff changeset
20 ## @deftypefn {Function File} {@var{h} =} __stem__ (@var{have_z}, @var{varargin})
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 8507
diff changeset
21 ## Undocumented internal function.
7d48766c21a5 use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents: 8507
diff changeset
22 ## @end deftypefn
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
23
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
24 ## Author: Michel D. Schmid <michaelschmid@users.sourceforge.net>
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
25 ## Adapted-by: jwe
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
26
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
27 function h = __stem__ (have_z, varargin)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
28
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
29 if (have_z)
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
30 caller = "stem3";
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
31 else
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
32 caller = "stem";
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
33 endif
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
34
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
35 [ax, varargin, nargin] = __plt_get_axis_arg__ (caller, varargin{:});
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
36
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
37 [x, y, z, dofill, llc, ls, mmc, ms, varargin] = ...
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
38 check_stem_arg (have_z, varargin{:});
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
39
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
40 oldax = gca ();
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
41 unwind_protect
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
42 axes (ax);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
43 hold_state = get (ax, "nextplot");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
44 newplot ();
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
45 h = [];
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
46
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
47 nx = rows (x);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
48 for i = 1: columns (x)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
49 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
50 xt = x(:)';
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
51 xt = [xt; xt; NaN(1, nx)](:);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
52 yt = y(:)';
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
53 yt = [yt; yt; NaN(1, nx)](:);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
54 zt = z(:)';
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
55 zt = [zeros(1, nx); zt; NaN(1, nx)](:);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
56 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
57 xt = x(:, i)';
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
58 xt = [xt; xt; NaN(1, nx)](:);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
59 yt = y(:, i)';
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
60 yt = [zeros(1, nx); yt; NaN(1, nx)](:);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
61 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
62
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
63 hg = hggroup ();
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
64 h = [h; hg];
8075
a028a5960e18 Fix for hold with no figures/axes. Set prop/val pairs to hggroups rather than underlying objects. Fix for equality test in array_property
David Bateman <dbateman@free.fr>
parents: 8070
diff changeset
65 args = __add_datasource__ (caller, hg, {"x", "y", "z"}, varargin{:});
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
66
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
67 if (i == 1)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
68 set (ax, "nextplot", "add");
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
69 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
70
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
71 if (isempty (llc))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
72 lc = __next_line_color__ ();
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
73 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
74 lc = llc;
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
75 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
76
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
77 if (isempty (mmc))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
78 mc = lc;
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
79 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
80 mc = mmc;
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
81 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
82
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
83 if (dofill)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
84 fc = mc;
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
85 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
86 fc = "none";
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
87 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
88
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
89 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
90 h_stems = plot3 (xt, yt, zt, "color", lc, "linestyle", ls,
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
91 "parent", hg, x, y, z, "color", mc,
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
92 "marker", ms, "linestyle", "none",
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
93 "markerfacecolor", fc, "parent", hg);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
94
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
95 h_baseline = [];
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
96 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
97 h_stems = plot (xt, yt, "color", lc, "linestyle", ls,
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
98 "parent", hg, x(:,i), y(:, i), "color", mc, "marker",
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
99 ms, "linestyle", "none", "markerfacecolor",
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
100 fc, "parent", hg);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
101
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
102 if (i == 1)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
103 x_axis_range = get (ax, "xlim");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
104 h_baseline = line (x_axis_range, [0, 0], "color", [0, 0, 0]);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
105 set (h_baseline, "handlevisibility", "off");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
106 set (h_baseline, "xliminclude", "off");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
107 addlistener (ax, "xlim", @update_xlim);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
108 addlistener (h_baseline, "ydata", @update_baseline);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
109 addlistener (h_baseline, "visible", @update_baseline);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
110 endif
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
111 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
112
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
113 ## Setup the hggroup and listeners.
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
114 addproperty ("showbaseline", hg, "radio", "{on}|off");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
115 addproperty ("basevalue", hg, "data", 0);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
116 addproperty ("baseline", hg, "data", h_baseline);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
117
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
118 if (!have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
119 addlistener (hg, "showbaseline", @show_baseline);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
120 addlistener (hg, "basevalue", @move_baseline);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
121 endif
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
122
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
123 addproperty ("color", hg, "linecolor", lc);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
124 addproperty ("linewidth", hg, "linelinewidth", 0.5);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
125 addproperty ("linestyle", hg, "linelinestyle", ls);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
126 addproperty ("marker", hg, "linemarker", ms);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
127 addproperty ("markerfacecolor", hg, "linemarkerfacecolor", fc);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
128 addproperty ("markersize", hg, "linemarkersize", 6);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
129
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
130 addlistener (hg, "color", @update_props);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
131 addlistener (hg, "linewidth", @update_props);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
132 addlistener (hg, "linestyle", @update_props);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
133 addlistener (hg, "marker", @update_props);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
134 addlistener (hg, "markerfacecolor", @update_props);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
135 addlistener (hg, "markersize", @update_props);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
136
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
137 addproperty ("xdata", hg, "data", x(:, i));
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
138 addproperty ("ydata", hg, "data", y(:, i));
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
139 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
140 addproperty ("zdata", hg, "data", z(:, i));
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
141 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
142 addproperty ("zdata", hg, "data", []);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
143 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
144
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
145 addlistener (hg, "xdata", @update_data);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
146 addlistener (hg, "ydata", @update_data);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
147 addlistener (hg, "zdata", @update_data);
8075
a028a5960e18 Fix for hold with no figures/axes. Set prop/val pairs to hggroups rather than underlying objects. Fix for equality test in array_property
David Bateman <dbateman@free.fr>
parents: 8070
diff changeset
148
8079
082fa7859574 Additional do not call set with empty arguments fixes
David Bateman <dbateman@free.fr>
parents: 8075
diff changeset
149 if (! isempty (args))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
150 set (hg, args{:});
8079
082fa7859574 Additional do not call set with empty arguments fixes
David Bateman <dbateman@free.fr>
parents: 8075
diff changeset
151 endif
8075
a028a5960e18 Fix for hold with no figures/axes. Set prop/val pairs to hggroups rather than underlying objects. Fix for equality test in array_property
David Bateman <dbateman@free.fr>
parents: 8070
diff changeset
152 if (i == 1 && !isempty(h_baseline))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
153 set (h_baseline, "parent", get (hg, "parent"));
8075
a028a5960e18 Fix for hold with no figures/axes. Set prop/val pairs to hggroups rather than underlying objects. Fix for equality test in array_property
David Bateman <dbateman@free.fr>
parents: 8070
diff changeset
154 endif
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
155 endfor
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
156
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
157 unwind_protect_cleanup
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
158 set (ax, "nextplot", hold_state);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
159 axes (oldax);
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
160 end_unwind_protect
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
161 endfunction
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
162
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
163 function [x, y, z, dofill, lc, ls, mc, ms, newargs] = check_stem_arg (have_z, varargin)
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
164
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
165 ## FIXME -- there seems to be a lot of duplicated code in this
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
166 ## function. It seems like it should be possible to simplify things
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
167 ## by combining some of the nearly identical code sections into
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
168 ## additional subfunctions.
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
169
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
170 if (have_z)
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
171 caller = "stem3";
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
172 else
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
173 caller = "stem";
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
174 endif
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
175
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
176 ## Remove prop/val pairs from data to consider.
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
177 i = 2;
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
178 newargs = {};
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
179 while (i < length (varargin))
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
180 if (ischar (varargin{i}) && !(strcmpi ("fill", varargin{i})
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
181 || strcmpi ("filled", varargin{i})))
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
182 newargs{end + 1} = varargin{i};
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
183 newargs{end + 1} = varargin{i + 1};
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
184 nargin = nargin - 2;
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
185 varargin(i:i+1) = [];
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
186 else
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
187 i++;
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
188 endif
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
189 endwhile
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents: 8056
diff changeset
190
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
191 ## set specifiers to default values.
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
192 [lc, ls, mc, ms] = set_default_values ();
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
193 dofill = 0;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
194 fill_2 = 0;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
195 linespec_2 = 0;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
196 z = [];
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
197
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
198 ## Check input arguments.
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
199 if (nargin == 2)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
200 if (have_z)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
201 z = varargin{1};
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
202 x = 1:rows (z);
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
203 y = 1:columns (z);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
204 else
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
205 y = varargin{1};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
206 if (isvector (y))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
207 x = 1:length (y);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
208 elseif (ismatrix (y))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
209 x = 1:rows (y);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
210 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
211 error ("stem: Y must be a matrix");
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
212 endif # in each case, x & y will be defined
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
213 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
214 elseif (nargin == 3)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
215 ## Several possibilities
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
216 ##
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
217 ## 1. the real y data
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
218 ## 2. 'filled'
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
219 ## 3. line spec
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
220 if (ischar (varargin{2}))
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
221 ## Only 2. or 3. possible.
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
222 if (strcmpi ("fill", varargin{2}) || strcmpi ("filled", varargin{2}))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
223 dofill = 1;
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
224 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
225 ## Parse the linespec.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
226 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{2});
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
227 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
228 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
229 z = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
230 x = 1:rows (z);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
231 y = 1:columns (z);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
232 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
233 y = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
234 if (isvector (y))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
235 x = 1:length (y);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
236 elseif (ismatrix (y))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
237 x = 1:rows (y);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
238 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
239 error ("stem: Y must be a matrix");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
240 endif # in each case, x & y will be defined
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
241 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
242 else
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
243 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
244 error ("stem3: must define X, Y and Z");
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
245 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
246 ## Must be the real y data.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
247 x = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
248 y = varargin{2};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
249 if (! (ismatrix (x) && ismatrix (y)))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
250 error ("stem: X and Y must be matrices");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
251 endif
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
252 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
253 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
254 elseif (nargin == 4)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
255 ## Again, several possibilities:
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
256 ##
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
257 ## arg2 1. real y
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
258 ## arg2 2. 'filled' or linespec
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
259 ## arg3 1. real z
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
260 ## arg3 2. 'filled' or linespec
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
261 if (ischar (varargin{2}))
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
262 ## Only arg2 2. / arg3 1. & arg3 3. are possible.
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
263 if (strcmpi ("fill", varargin{2}) || strcmpi ("filled", varargin{2}))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
264 dofill = 1;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
265 fill_2 = 1; # Be sure, no second "fill" is in the arguments.
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
266 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
267 ## Must be a linespec.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
268 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{2});
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
269 linespec_2 = 1;
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
270 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
271 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
272 z = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
273 x = 1:rows (z);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
274 y = 1:columns (z);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
275 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
276 y = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
277 if (isvector (y))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
278 x = 1:length (y);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
279 elseif (ismatrix (y))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
280 x = 1:rows (y);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
281 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
282 error ("stem: Y must be a matrix");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
283 endif # in each case, x & y will be defined
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
284 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
285 else
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
286 if (have_z)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
287 x = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
288 y = varargin{2};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
289 z = varargin{3};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
290 if (! (ismatrix (x) && ismatrix (y) && ismatrix (z)))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
291 error ("stem3: X, Y and Z must be matrices");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
292 endif
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
293 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
294 ## must be the real y data.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
295 x = varargin{1};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
296 y = varargin{2};
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
297 if (! (ismatrix (x) && ismatrix (y)))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
298 error ("stem: X and Y must be matrices");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
299 endif
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
300 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
301 endif # if ischar(varargin{2})
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
302 if (! have_z)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
303 ## varargin{3} must be char.
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
304 ## Check for "fill.
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
305 if ((strcmpi (varargin{3}, "fill") || strcmpi (varargin{3}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
306 && fill_2)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
307 error ("stem: duplicate fill argument");
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
308 elseif (strcmpi ("fill", varargin{3}) && linespec_2)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
309 ## Must be "fill".
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
310 dofill = 1;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
311 fill_2 = 1;
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
312 elseif ((strcmpi (varargin{3}, "fill") || strcmpi (varargin{3}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
313 && !linespec_2)
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
314 ## Must be "fill".
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
315 dofill = 1;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
316 fill_2 = 1;
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
317 elseif (! linespec_2)
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
318 ## Must be linespec.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
319 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{3});
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
320 linespec_2 = 1;
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
321 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
322 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
323 elseif (nargin == 5)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
324 if (have_z)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
325 x = varargin{1};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
326 y = varargin{2};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
327 z = varargin{3};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
328 if (! (ismatrix (x) && ismatrix (y) && ismatrix (z)))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
329 error ("stem3: X, Y and Z must be matrices");
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
330 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
331 else
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
332 x = varargin{1};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
333 y = varargin{2};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
334 if (! (ismatrix (x) && ismatrix (y)))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
335 error ("stem: X and Y must be matrices");
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
336 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
337 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
338
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
339 if (! have_z)
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
340 if (strcmpi (varargin{3}, "fill") || strcmpi (varargin{3}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
341 dofill = 1;
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
342 fill_2 = 1; # Be sure, no second "fill" is in the arguments.
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
343 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
344 ## Must be a linespec.
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
345 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{3});
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
346 linespec_2 = 1;
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
347 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
348 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
349
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
350 ## Check for "fill".
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
351 if ((strcmpi (varargin{4}, "fill") || strcmpi (varargin{4}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
352 && fill_2)
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
353 error ("%s: duplicate fill argument", caller);
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
354 elseif ((strcmpi (varargin{4}, "fill") || strcmpi (varargin{4}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
355 && linespec_2)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
356 ## Must be "fill".
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
357 dofill = 1;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
358 fill_2 = 1;
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
359 elseif (!strcmpi (varargin{4}, "fill") && !strcmpi (varargin{4}, "filled")
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
360 && !linespec_2)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
361 ## Must be linespec.
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
362 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{4});
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
363 linespec_2 = 1;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
364 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
365 elseif (nargin == 6 && have_z)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
366 x = varargin{1};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
367 y = varargin{2};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
368 z = varargin{3};
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
369 if (! (ismatrix (x) && ismatrix (y) && ismatrix (z)))
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
370 error ("stem3: X, Y and Z must be matrices");
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
371 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
372
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
373 if (strcmpi (varargin{4}, "fill") || strcmpi (varargin{4}, "filled"))
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
374 dofill = 1;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
375 fill_2 = 1; # be sure, no second "fill" is in the arguments
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
376 else
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
377 ## Must be a linespec.
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
378 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{4});
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
379 linespec_2 = 1;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
380 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
381
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
382 ## check for "fill" ..
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
383 if ((strcmpi (varargin{5}, "fill") || strcmpi (varargin{5}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
384 && fill_2)
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
385 error ("stem3: duplicate fill argument");
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
386 elseif ((strcmpi (varargin{5}, "fill") || strcmpi (varargin{5}, "filled"))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
387 && linespec_2)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
388 ## Must be "fill".
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
389 dofill = 1;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
390 fill_2 = 1;
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
391 elseif (!strcmpi (varargin{5}, "fill") && !strcmpi (varargin{5}, "filled")
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
392 && !linespec_2)
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
393 ## Must be linespec.
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
394 [lc, ls, mc, ms] = stem_line_spec (caller, varargin{5});
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
395 linespec_2 = 1;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
396 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
397 else
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
398 error ("%s: incorrect number of arguments", caller);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
399 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
400
8506
bc982528de11 comment style fixes
John W. Eaton <jwe@octave.org>
parents: 8315
diff changeset
401 ## Check sizes of x, y and z.
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
402 if (have_z)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
403 if (!size_equal (x, y, z))
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
404 error ("stem3: inconsistent size of x, y and z");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
405 else
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
406 x = x(:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
407 y = y(:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
408 z = z(:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
409 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
410 else
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
411 if (isvector (x))
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
412 x = x(:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
413 if (isvector (y))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
414 if (length (x) != length (y))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
415 error ("stem: inconsistent size of x and y");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
416 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
417 y = y(:);
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
418 endif
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
419 else
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
420 if (length (x) == rows (y))
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
421 x = repmat (x(:), 1, columns (y));
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
422 else
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
423 error ("stem: inconsistent size of x and y");
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
424 endif
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
425 endif
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 8506
diff changeset
426 elseif (!size_equal (x, y))
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
427 error ("stem: inconsistent size of x and y");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
428 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
429 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
430
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
431 endfunction
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
432
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
433 function [lc, ls, mc, ms] = stem_line_spec (caller, str)
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
434 if (! ischar (str))
7218
02eb1619b857 [project @ 2007-11-29 21:10:55 by jwe]
jwe
parents: 7217
diff changeset
435 error ("%s: expecting argument to be \"fill\" or a string of specifiers",
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
436 caller);
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
437 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
438 [lc, ls, mc, ms] = set_default_values ();
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
439 ## Parse the line specifier string.
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
440 cur_props = __pltopt__ ("stem", str, false);
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
441 for i = 1:length(cur_props)
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
442 if (isfield (cur_props(i), "color") && ! isempty (cur_props(i).color)); # means line color
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
443 mc = lc = cur_props(i).color;
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
444 elseif (isfield (cur_props(i), "linestyle"))
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
445 ls = cur_props(i).linestyle;
10135
4516a0c97ced Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents: 9896
diff changeset
446 if (isempty (ls))
4516a0c97ced Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents: 9896
diff changeset
447 ls = __next_line_style__ ();
4516a0c97ced Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents: 9896
diff changeset
448 endif
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
449 elseif (isfield (cur_props(i), "marker") && ! strcmpi (cur_props(i).marker, "none"))
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
450 ms = cur_props(i).marker;
10135
4516a0c97ced Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents: 9896
diff changeset
451 if (isempty (ms))
4516a0c97ced Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents: 9896
diff changeset
452 [dummy, ms] = __next_line_style__ ();
4516a0c97ced Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents: 9896
diff changeset
453 endif
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
454 endif
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
455 endfor
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
456 endfunction
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
457
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
458 function [lc, ls, mc, ms] = set_default_values ()
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
459 ## set default values
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
460 mc = [];
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
461 lc = [];
7217
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
462 ls = "-";
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
463 ms = "o";
c8abc18322b7 [project @ 2007-11-29 20:50:24 by jwe]
jwe
parents:
diff changeset
464 endfunction
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
465
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
466 function update_xlim (h, d)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
467 kids = get (h, "children");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
468 xlim = get (h, "xlim");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
469
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
470 for i = 1 : length (kids)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
471 obj = get (kids (i));
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
472 if (strcmp (obj.type, "hggroup") && isfield (obj, "baseline"))
8056
9a6f4713f765 Add area, bar, quiver and stair series graphics objects. Document them
David Bateman <dbateman@free.fr>
parents: 8052
diff changeset
473 if (any (get (obj.baseline, "xdata") != xlim))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
474 set (obj.baseline, "xdata", xlim);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
475 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
476 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
477 endfor
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
478 endfunction
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
479
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
480 function update_baseline (h, d)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
481 visible = get (h, "visible");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
482 ydata = get (h, "ydata")(1);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
483
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
484 kids = get (get (h, "parent"), "children");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
485 for i = 1 : length (kids)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
486 obj = get (kids (i));
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
487 if (strcmp (obj.type, "hggroup") && isfield (obj, "baseline")
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
488 && obj.baseline == h)
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
489 ## Only alter if changed to avoid recursion of the listener functions
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
490 if (! strcmpi (get (kids(i), "showbaseline"), visible))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
491 set (kids (i), "showbaseline", visible);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
492 endif
8190
73d6b71788c0 use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents: 8079
diff changeset
493 if (! strcmpi (get (kids(i), "basevalue"), visible))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10135
diff changeset
494 set (kids (i), "basevalue", ydata);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
495 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
496 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
497 endfor
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
498 endfunction
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
499
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
500 function show_baseline (h, d)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
501 set (get (h, "baseline"), "visible", get (h, "showbaseline"));
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
502 endfunction
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
503
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
504 function move_baseline (h, d)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
505 b0 = get (h, "basevalue");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
506 bl = get (h, "baseline");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
507
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
508 if (get (bl, "ydata") != [b0, b0])
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
509 set (bl, "ydata", [b0, b0]);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
510 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
511
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
512 kids = get (h, "children");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
513 yt = get(h, "ydata")(:)';
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
514 ny = length (yt);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
515 yt = [b0 * ones(1, ny); yt; NaN(1, ny)](:);
8315
e9687c313d5f Fix callbacks in stem and quiver for change in order of children. Fix for scaling in quiver for single arrow
David Bateman <dbateman@free.fr>
parents: 8238
diff changeset
516 set (kids(2), "ydata", yt);
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
517 endfunction
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
518
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
519 function update_props (h, d)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
520 kids = get (h, "children");
8315
e9687c313d5f Fix callbacks in stem and quiver for change in order of children. Fix for scaling in quiver for single arrow
David Bateman <dbateman@free.fr>
parents: 8238
diff changeset
521 set (kids(2), "color", get (h, "color"),
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
522 "linewidth", get (h, "linewidth"),
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
523 "linestyle", get (h, "linestyle"));
8315
e9687c313d5f Fix callbacks in stem and quiver for change in order of children. Fix for scaling in quiver for single arrow
David Bateman <dbateman@free.fr>
parents: 8238
diff changeset
524 set (kids(1), "color", get (h, "color"),
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
525 "marker", get (h, "marker"),
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
526 "markerfacecolor", get (h, "markerfacecolor"),
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
527 "markersize", get (h, "markersize"));
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
528 endfunction
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
529
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
530 function update_data (h, d)
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
531 x = get (h, "xdata");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
532 y = get (h, "ydata");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
533 z = get (h, "zdata");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
534
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
535 if (!isempty (z) && size_equal (x, y, z))
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
536 error ("stem3: inconsistent size of x, y and z");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
537 elseif (numel(x) != numel (y))
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
538 error ("stem: inconsistent size of x and y");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
539 else
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
540 bl = get (h, "basevalue");
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
541 nx = numel (x);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
542 x = x(:)';
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
543 xt = [x; x; NaN(1, nx)](:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
544 if (! isempty (z))
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
545 y = y(:)';
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
546 yt = [y; y; NaN(1, nx)](:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
547 z = z(:)';
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
548 zt = [bl * ones(1, nx); z; NaN(1, nx)](:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
549 else
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
550 y = y(:)';
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
551 yt = [bl * ones(1, nx); y; NaN(1, nx)](:);
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
552 zt = [];
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
553 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
554
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
555 kids = get (h, "children");
8315
e9687c313d5f Fix callbacks in stem and quiver for change in order of children. Fix for scaling in quiver for single arrow
David Bateman <dbateman@free.fr>
parents: 8238
diff changeset
556 set (kids(2), "xdata", xt, "ydata", yt, "zdata", zt)
e9687c313d5f Fix callbacks in stem and quiver for change in order of children. Fix for scaling in quiver for single arrow
David Bateman <dbateman@free.fr>
parents: 8238
diff changeset
557 set (kids(1), "xdata", x, "ydata", y, "zdata", z)
8052
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
558 endif
961d4c52ffae Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents: 7218
diff changeset
559 endfunction