Mercurial > hg > octave-lyh
annotate scripts/plot/private/__errplot__.m @ 14493:351ca094580b
Add terminating semicolon.
* __go_draw_axes__.m (no_super_sub_scripts): Add terminating semicolon
missing since changeset 0b94080d2b0f.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Sat, 24 Mar 2012 20:32:24 -0400 |
parents | 72c96de7a403 |
children | 86854d032a37 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13221
diff
changeset
|
1 ## Copyright (C) 2000-2012 Teemu Ikonen |
3718 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
3718 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
3718 | 18 |
8812
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8506
diff
changeset
|
19 ## -*- texinfo -*- |
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8506
diff
changeset
|
20 ## @deftypefn {Function File} {@var{h} =} __errplot__ (@var{fstr}, @var{p}, @dots{}) |
6895 | 21 ## Undocumented internal function. |
8812
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8506
diff
changeset
|
22 ## @end deftypefn |
5720 | 23 |
3718 | 24 ## Created: 18.7.2000 |
25 ## Author: Teemu Ikonen <tpikonen@pcu.helsinki.fi> | |
26 ## Keywords: errorbar, plotting | |
27 | |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
28 function h = __errplot__ (fstr, p, varargin) |
5406 | 29 |
6257 | 30 if (nargin < 4 || nargin > 8) # at least two data arguments needed |
6046 | 31 print_usage (); |
4897 | 32 endif |
4007 | 33 |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
34 [fmt, valid] = __pltopt__ ("__errplot__", fstr); |
6146 | 35 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
36 [len, nplots] = size (varargin{1}); |
8258 | 37 h = []; |
4007 | 38 |
4897 | 39 for i = 1:nplots |
6736 | 40 ## Set the plot type based on linestyle. |
8258 | 41 |
10580
1479b93ee655
Respect linestyleorder in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10576
diff
changeset
|
42 if (strcmp (fmt.errorstyle, "~")) |
6736 | 43 ifmt = "yerr"; |
10580
1479b93ee655
Respect linestyleorder in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10576
diff
changeset
|
44 elseif (strcmp (fmt.errorstyle, ">")) |
6736 | 45 ifmt = "xerr"; |
10580
1479b93ee655
Respect linestyleorder in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10576
diff
changeset
|
46 elseif (strcmp (fmt.errorstyle, "~>")) |
6736 | 47 ifmt = "xyerr"; |
10580
1479b93ee655
Respect linestyleorder in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10576
diff
changeset
|
48 elseif (strcmp (fmt.errorstyle, "#")) |
6736 | 49 ifmt = "box"; |
10580
1479b93ee655
Respect linestyleorder in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10576
diff
changeset
|
50 elseif (strcmp (fmt.errorstyle, "#~")) |
6736 | 51 ifmt = "boxy"; |
10590
083e4f6143fe
__errplot__.m: Fix bug for boxxy errorbar.
Ben Abbott <bpabbott@mac.com>
parents:
10587
diff
changeset
|
52 elseif (strcmp (fmt.errorstyle, "#~>")) |
6736 | 53 ifmt = "boxxy"; |
54 else | |
11099
65b240770880
Fix normal line and marker types for errorplots.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
55 ifmt = "yerr"; |
10576
384c514bbae2
Allow setting of the markers in errorbar linestyles
David Bateman <dbateman@free.fr>
parents:
10575
diff
changeset
|
56 endif |
384c514bbae2
Allow setting of the markers in errorbar linestyles
David Bateman <dbateman@free.fr>
parents:
10575
diff
changeset
|
57 |
8258 | 58 hg = hggroup ("parent", p); |
59 h = [h; hg]; | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
60 args = __add_datasource__ ("__errplot__", hg, |
10549 | 61 {"x", "y", "l", "u", "xl", "xu"}); |
8258 | 62 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
63 if (isempty (fmt.color)) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
64 fmt.color = __next_line_color__ (); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
65 endif |
10580
1479b93ee655
Respect linestyleorder in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10576
diff
changeset
|
66 if (isempty (fmt.marker) && isempty (fmt.linestyle)) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
67 [fmt.linestyle, fmt.marker] = __next_line_style__ (); |
10575
3eba2cc7cbda
Allow matlab style linestyles in errorbar plots
David Bateman <dbateman@free.fr>
parents:
10573
diff
changeset
|
68 endif |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
69 hl = [(__line__ (hg, "linestyle", fmt.linestyle, "marker", fmt.marker, |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
70 "color", fmt.color)), |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
71 (__line__ (hg, "linestyle", "-", "marker", "none", |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
72 "color", fmt.color))]; |
6736 | 73 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
74 switch (numel(varargin)) |
4897 | 75 case 2 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
76 ydata = varargin{1}(:,i); |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
77 xdata = 1:numel (ydata); |
10594
4b421123fd17
__errplot__.m: Fix bug parsing errorbar style.
Ben Abbott <bpabbott@mac.com>
parents:
10592
diff
changeset
|
78 if (strcmp (ifmt, "xerr") || strcmp (ifmt, "box")) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
79 xldata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
80 xudata = ldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
81 ldata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
82 udata = []; |
10594
4b421123fd17
__errplot__.m: Fix bug parsing errorbar style.
Ben Abbott <bpabbott@mac.com>
parents:
10592
diff
changeset
|
83 elseif (strcmp (ifmt, "yerr") || strcmp (ifmt, "boxy")) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
84 ldata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
85 udata = ldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
86 xldata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
87 xudata = []; |
10573
d8894a2d0a03
Allow x, xy and box errorbars with different plotting syntax
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
88 else |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
89 error ("errorbar: 2 column errorplot is only valid for xerr or yerr"); |
10573
d8894a2d0a03
Allow x, xy and box errorbars with different plotting syntax
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
90 endif |
4897 | 91 case 3 |
10594
4b421123fd17
__errplot__.m: Fix bug parsing errorbar style.
Ben Abbott <bpabbott@mac.com>
parents:
10592
diff
changeset
|
92 if (strcmp (ifmt, "boxxy") || strcmp (ifmt, "xyerr")) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
93 ydata = varargin{1}(:,i); |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
94 xdata = 1:numel (ydata); |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
95 xldata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
96 xudata = xldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
97 ldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
98 udata = ldata; |
10594
4b421123fd17
__errplot__.m: Fix bug parsing errorbar style.
Ben Abbott <bpabbott@mac.com>
parents:
10592
diff
changeset
|
99 elseif (strcmp (ifmt, "xerr") || strcmp (ifmt, "box")) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
100 xdata = varargin{1}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
101 ydata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
102 xldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
103 xudata = xldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
104 ldata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
105 udata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
106 else # yerr or boxy |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
107 xdata = varargin{1}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
108 ydata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
109 ldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
110 udata = ldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
111 xldata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
112 xudata = []; |
10573
d8894a2d0a03
Allow x, xy and box errorbars with different plotting syntax
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
113 endif |
4897 | 114 case 4 |
10594
4b421123fd17
__errplot__.m: Fix bug parsing errorbar style.
Ben Abbott <bpabbott@mac.com>
parents:
10592
diff
changeset
|
115 if (strcmp (ifmt, "boxxy") || strcmp (ifmt, "xyerr")) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
116 xdata = varargin{1}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
117 ydata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
118 xldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
119 xudata = xldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
120 ldata = varargin{4}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
121 udata = ldata; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
122 elseif (strcmp (ifmt, "xerr") || strcmp (ifmt, "box")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
123 xdata = varargin{1}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
124 ydata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
125 xldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
126 xudata = varargin{4}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
127 ldata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
128 udata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
129 else # yerr or boxy |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
130 xdata = varargin{1}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
131 ydata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
132 ldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
133 udata = varargin{4}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
134 xldata = []; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
135 xudata = []; |
10549 | 136 endif |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
137 case 6 # boxxy, xyerr |
10594
4b421123fd17
__errplot__.m: Fix bug parsing errorbar style.
Ben Abbott <bpabbott@mac.com>
parents:
10592
diff
changeset
|
138 if (strcmp (ifmt, "boxxy") || strcmp (ifmt, "xyerr")) |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
139 xdata = varargin{1}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
140 ydata = varargin{2}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
141 xldata = varargin{3}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
142 xudata = varargin{4}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
143 ldata = varargin{5}(:,i); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
144 udata = varargin{6}(:,i); |
10573
d8894a2d0a03
Allow x, xy and box errorbars with different plotting syntax
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
145 else |
10635
d1978e7364ad
Print name of function in error() string messages.
Rik <octave@nomad.inbox5.com>
parents:
10594
diff
changeset
|
146 error ("errorbar: error plot with 6 columns only valid for boxxy and xyerr"); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
147 endif |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
148 otherwise |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
149 error ("errorbar: error plot requires 2, 3, 4, or 6 arguments"); |
4897 | 150 endswitch |
8258 | 151 |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
152 addproperty ("xdata", hg, "data", xdata(:)); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
153 addproperty ("ydata", hg, "data", ydata(:)); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
154 addproperty ("ldata", hg, "data", ldata(:)); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
155 addproperty ("udata", hg, "data", udata(:)); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
156 addproperty ("xldata", hg, "data", xldata(:)); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
157 addproperty ("xudata", hg, "data", xudata(:)); |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
158 addproperty ("format", hg, "string", ifmt); |
10587
eb69d94e8648
Update the errorbar markers in a seperate listtener function
David Bateman <dbateman@free.fr>
parents:
10584
diff
changeset
|
159 |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
160 addproperty ("color", hg, "linecolor", get (hl(1), "color")); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
161 addproperty ("linewidth", hg, "linelinewidth", get (hl(1), "linewidth")); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
162 addproperty ("linestyle", hg, "linelinestyle", get (hl(1), "linestyle")); |
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
163 addproperty ("marker", hg, "linemarker", get (hl(1), "marker")); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
164 addproperty ("markerfacecolor", hg, "linemarkerfacecolor", |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
165 get (hl(1), "markerfacecolor")); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
166 addproperty ("markeredgecolor", hg, "linemarkerfacecolor", |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
167 get (hl(1), "markeredgecolor")); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
168 addproperty ("markersize", hg, "linemarkersize", |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
169 get (hl(1), "markersize")); |
8258 | 170 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
171 fcn = {@update_props, hl}; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
172 addlistener (hg, "color", fcn); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
173 addlistener (hg, "linewidth", fcn); |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
174 addlistener (hg, "linestyle", fcn); |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
175 addlistener (hg, "marker", fcn); |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
176 addlistener (hg, "markerfacecolor", fcn); |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
177 addlistener (hg, "markersize", fcn); |
8258 | 178 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
179 fcn = {@update_data, hl}; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
180 addlistener (hg, "xdata", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
181 addlistener (hg, "ydata", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
182 addlistener (hg, "ldata", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
183 addlistener (hg, "udata", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
184 addlistener (hg, "xldata", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
185 addlistener (hg, "xudata", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
186 addlistener (hg, "format", fcn); |
8258 | 187 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
188 hax = ancestor (hg, "axes"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
189 addlistener (hax, "xscale", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
190 addlistener (hax, "yscale", fcn); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
191 |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
192 update_data (hg, [], hl); |
8258 | 193 |
5406 | 194 endfor |
195 | |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
196 ## Process legend key |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
197 if (! isempty (fmt.key)) |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
198 hlegend = []; |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
199 fkids = get (gcf(), "children"); |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
200 for i = 1 : numel (fkids) |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
201 if (ishandle (fkids(i)) && strcmp (get (fkids(i), "type"), "axes") |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
202 && (strcmp (get (fkids(i), "tag"), "legend"))) |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
203 udata = get (fkids(i), "userdata"); |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
204 if (! isempty (intersect (udata.handle, gca ()))) |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
205 hlegend = fkids (i); |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
206 break; |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
207 endif |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
208 endif |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
209 endfor |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
210 |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
211 if (isempty (hlegend)) |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
212 hlgnd = []; |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
213 tlgnd = {}; |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
214 else |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
215 [hlgnd, tlgnd] = __getlegenddata__ (hlegend); |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
216 endif |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
217 |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
218 hlgnd(end+1) = hg; |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
219 tlgnd(end+1) = fmt.key; |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
220 |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
221 legend (gca(), hlgnd, tlgnd); |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
222 end |
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
223 |
4007 | 224 endfunction |
8258 | 225 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
226 function [xdata, ydata] = errorbar_data (xdata, ydata, ldata, udata, |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
227 xldata, xudata, ifmt, |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
228 xscale, yscale) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
229 if (strcmp (xscale, "linear")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
230 dx = 0.01 * (max (xdata(:)) - min (xdata(:))); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
231 xlo = xdata - dx; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
232 xhi = xdata + dx; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
233 else |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
234 n = xdata > 0; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
235 rx = exp(0.01 * (max (log(xdata(n))) - min (log(xdata(n))))); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
236 xlo = xdata/rx; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
237 xhi = xdata*rx; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
238 endif |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
239 if (strcmp (yscale, "linear")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
240 dy = 0.01 * (max (ydata(:)) - min (ydata(:))); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
241 ylo = ydata - dy; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
242 yhi = ydata + dy; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
243 else |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
244 n = ydata > 0; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
245 ry = exp(0.01 * (max (log(ydata(n))) - min (log(ydata(n))))); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
246 ylo = ydata/ry; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
247 yhi = ydata*ry; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
248 endif |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
249 nans = NaN + xdata(:); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
250 if (strcmp (ifmt, "yerr")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
251 xdata = [xdata, xdata, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
252 xlo, xhi, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
253 xlo, xhi, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
254 ydata = [ydata-ldata, ydata+udata, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
255 ydata+udata, ydata+udata, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
256 ydata-ldata, ydata-ldata, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
257 elseif (strcmp (ifmt, "xerr")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
258 xdata = [xdata-xldata, xdata+xudata, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
259 xdata+xudata, xdata+xudata, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
260 xdata-xldata, xdata-xldata, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
261 ydata = [ydata, ydata, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
262 ylo, yhi, nans, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
263 ylo, yhi, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
264 elseif (strcmp (ifmt, "boxy")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
265 dx = 0.01 * (max (xdata(:)) - min (xdata(:))); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
266 xdata = [xlo, xhi, xhi, xlo, xlo, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
267 ydata = [ydata-ldata, ydata-ldata, ydata+udata, ydata+udata, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
268 ydata-ldata, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
269 elseif (strcmp (ifmt, "box")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
270 dy = 0.01 * (max (ydata(:)) - min (ydata(:))); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
271 xdata = [xdata-xldata, xdata+xudata, xdata+xudata, xdata-xldata, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
272 xdata-xldata, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
273 ydata = [ylo, ylo, yhi, yhi, ylo, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
274 elseif (strcmp (ifmt, "boxxy")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
275 xdata = [xdata-xldata, xdata+xudata, xdata+xudata, xdata-xldata, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
276 xdata-xldata, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
277 ydata = [ydata-ldata, ydata-ldata, ydata+udata, ydata+udata, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
278 ydata-ldata, nans]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
279 elseif (strcmp (ifmt, "xyerr")) |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
280 [x1, y1] = errorbar_data (xdata, ydata, ldata, udata, |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
281 xldata, xudata, "xerr", xscale, yscale); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
282 [x2, y2] = errorbar_data (xdata, ydata, ldata, udata, |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
283 xldata, xudata, "yerr", xscale, yscale); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
284 xdata = [x1; x2]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
285 ydata = [y1; y2]; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
286 return |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
287 else |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
288 error ("errorbar: valid error bar types are xerr, yerr, boxxy, and xyerr"); |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
289 endif |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
290 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
291 xdata = xdata.'(:); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
292 ydata = ydata.'(:); |
13221
cc6e9425c04e
errorbar plots can now accept a legend key (Bug #33580).
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
293 |
8258 | 294 endfunction |
295 | |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
296 function update_props (hg, dummy, hl) |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
297 set (hl, "color", get (hg, "color"), |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
298 "linewidth", get (hg, "linewidth"));, |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
299 set (hl(1), "linestyle", get (hg, "linestyle"), |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
300 "marker", get (hg, "marker"), |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
301 "markersize", get (hg, "markersize"), |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
302 "markerfacecolor", get (hg, "markerfacecolor"), |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
303 "markeredgecolor", get (hg, "markeredgecolor")); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
304 endfunction |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
305 |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
306 function update_data (hg, dummy, hl) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
307 |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
308 if (strcmp (get (hg, "type"), "axes")) |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
309 hax = hg; |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
310 hg = ancestor (hl(1), "hggroup"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
311 else |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
312 hax = ancestor (hg, "axes"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
313 endif |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
314 xscale = get (hax, "xscale"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
315 yscale = get (hax, "yscale"); |
8258 | 316 |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
317 xdata = get (hg, "xdata"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
318 ydata = get (hg, "ydata"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
319 ldata = get (hg, "ldata"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
320 udata = get (hg, "udata"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
321 xldata = get (hg, "xldata"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
322 xudata = get (hg, "xudata"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
323 ifmt = get (hg, "format"); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
324 |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
325 set (hl(1), "xdata", xdata); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
326 set (hl(1), "ydata", ydata); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
327 |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
328 [errorbar_xdata, errorbar_ydata] = ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
329 errorbar_data (xdata, ydata, ldata, udata, xldata, xudata, ... |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
330 ifmt, xscale, yscale); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
331 |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
332 set (hl(2), "xdata", errorbar_xdata); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
333 set (hl(2), "ydata", errorbar_ydata); |
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
334 |
8258 | 335 endfunction |
10592
f0a7a72c1fbf
__errplot__.m: Implement errorbars in the Matlab style.
Ben Abbott <bpabbott@mac.com>
parents:
10590
diff
changeset
|
336 |