Mercurial > hg > octave-lyh
annotate scripts/plot/errorbar.m @ 16950:b34202b24212
fplot.m: Overhaul function for Matlab compatibility and performance (bug #38961).
* scripts/plot/fplot.m: Add ability to specify n,tol,fmt in any order and
simultaneously. Return data rather than plotting it if asked. Use
additional test on progress of algorithm to decide whether to quit. Add
%!demo and %!tests.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 11 Jul 2013 09:25:54 -0700 |
parents | 64e7bb01fce2 |
children | c935a0db31c6 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14092
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 |
19 ## -*- texinfo -*- | |
16814
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14245
diff
changeset
|
20 ## @deftypefn {Function File} {} errorbar (@var{args}) |
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14245
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{h} =} errorbar (@var{args}) |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
22 ## This function produces two-dimensional plots with errorbars. Many |
3718 | 23 ## different combinations of arguments are possible. The simplest form is |
24 ## | |
25 ## @example | |
26 ## errorbar (@var{y}, @var{ey}) | |
27 ## @end example | |
28 ## | |
29 ## @noindent | |
30 ## where the first argument is taken as the set of @var{y} coordinates | |
31 ## and the second argument @var{ey} is taken as the errors of the | |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
32 ## @var{y} values. @var{x} coordinates are taken to be the indices |
3718 | 33 ## of the elements, starting with 1. |
34 ## | |
35 ## If more than two arguments are given, they are interpreted as | |
36 ## | |
37 ## @example | |
6701 | 38 ## errorbar (@var{x}, @var{y}, @dots{}, @var{fmt}, @dots{}) |
3718 | 39 ## @end example |
40 ## | |
41 ## @noindent | |
42 ## where after @var{x} and @var{y} there can be up to four error | |
9209
923c7cb7f13f
Simplify TeXinfo files by eliminating redundant @iftex followed by @tex construction.
Rik <rdrider0-list@yahoo.com>
parents:
9051
diff
changeset
|
43 ## parameters such as @var{ey}, @var{ex}, @var{ly}, @var{uy}, etc., |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
44 ## depending on the plot type. Any number of argument sets may appear, |
3718 | 45 ## as long as they are separated with a format string @var{fmt}. |
46 ## | |
47 ## If @var{y} is a matrix, @var{x} and error parameters must also be matrices | |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
48 ## having same dimensions. The columns of @var{y} are plotted versus the |
3718 | 49 ## corresponding columns of @var{x} and errorbars are drawn from |
50 ## the corresponding columns of error parameters. | |
51 ## | |
6895 | 52 ## If @var{fmt} is missing, yerrorbars ("~") plot style is assumed. |
53 ## | |
3718 | 54 ## If the @var{fmt} argument is supplied, it is interpreted as in |
11563
3c6e8aaa9555
Grammarcheck m-files before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
55 ## normal plots. In addition, @var{fmt} may include an errorbar style |
11575
d6619410e79c
Spellcheck documentation before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
56 ## which must precede the line and marker format. The following plot |
11099
65b240770880
Fix normal line and marker types for errorplots.
Ben Abbott <bpabbott@mac.com>
parents:
10846
diff
changeset
|
57 ## styles are supported by errorbar: |
3718 | 58 ## |
59 ## @table @samp | |
60 ## @item ~ | |
61 ## Set yerrorbars plot style (default). | |
62 ## | |
63 ## @item > | |
64 ## Set xerrorbars plot style. | |
65 ## | |
66 ## @item ~> | |
67 ## Set xyerrorbars plot style. | |
68 ## | |
69 ## @item # | |
70 ## Set boxes plot style. | |
71 ## | |
72 ## @item #~ | |
73 ## Set boxerrorbars plot style. | |
74 ## | |
75 ## @item #~> | |
76 ## Set boxxyerrorbars plot style. | |
77 ## @end table | |
78 ## | |
79 ## Examples: | |
80 ## | |
81 ## @example | |
6895 | 82 ## errorbar (@var{x}, @var{y}, @var{ex}, ">") |
3718 | 83 ## @end example |
84 ## | |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10591
diff
changeset
|
85 ## @noindent |
6895 | 86 ## produces an xerrorbar plot of @var{y} versus @var{x} with @var{x} |
87 ## errorbars drawn from @var{x}-@var{ex} to @var{x}+@var{ex}. | |
3718 | 88 ## |
89 ## @example | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
90 ## @group |
6895 | 91 ## errorbar (@var{x}, @var{y1}, @var{ey}, "~", |
92 ## @var{x}, @var{y2}, @var{ly}, @var{uy}) | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
93 ## @end group |
3718 | 94 ## @end example |
95 ## | |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10591
diff
changeset
|
96 ## @noindent |
6895 | 97 ## produces yerrorbar plots with @var{y1} and @var{y2} versus @var{x}. |
3718 | 98 ## Errorbars for @var{y1} are drawn from @var{y1}-@var{ey} to |
99 ## @var{y1}+@var{ey}, errorbars for @var{y2} from @var{y2}-@var{ly} to | |
100 ## @var{y2}+@var{uy}. | |
101 ## | |
102 ## @example | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
103 ## @group |
6895 | 104 ## errorbar (@var{x}, @var{y}, @var{lx}, @var{ux}, |
105 ## @var{ly}, @var{uy}, "~>") | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
106 ## @end group |
3718 | 107 ## @end example |
108 ## | |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10591
diff
changeset
|
109 ## @noindent |
6895 | 110 ## produces an xyerrorbar plot of @var{y} versus @var{x} in which |
111 ## @var{x} errorbars are drawn from @var{x}-@var{lx} to @var{x}+@var{ux} | |
112 ## and @var{y} errorbars from @var{y}-@var{ly} to @var{y}+@var{uy}. | |
113 ## @seealso{semilogxerr, semilogyerr, loglogerr} | |
3718 | 114 ## @end deftypefn |
115 | |
116 ## Created: 18.7.2000 | |
117 ## Author: Teemu Ikonen <tpikonen@pcu.helsinki.fi> | |
118 ## Keywords: errorbar, plotting | |
119 | |
7510
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
120 function retval = errorbar (varargin) |
3718 | 121 |
7207 | 122 [h, varargin] = __plt_get_axis_arg__ ("errorbar", varargin{:}); |
7216 | 123 |
7207 | 124 oldh = gca (); |
125 unwind_protect | |
126 axes (h); | |
127 newplot (); | |
7510
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
128 |
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
129 tmp = __errcomm__ ("errorbar", h, varargin{:}); |
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
130 |
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
131 if (nargout > 0) |
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
132 retval = tmp; |
f3e6ada67d9e
improve handling line style for errorbar plots
John W. Eaton <jwe@octave.org>
parents:
7216
diff
changeset
|
133 endif |
7207 | 134 unwind_protect_cleanup |
135 axes (oldh); | |
136 end_unwind_protect | |
3718 | 137 |
138 endfunction | |
8258 | 139 |
140 | |
141 %!demo | |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
142 %! clf; |
11363
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
143 %! rand_1x11_data1 = [0.82712, 0.50325, 0.35613, 0.77089, 0.20474, 0.69160, 0.30858, 0.88225, 0.35187, 0.14168, 0.54270]; |
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
144 %! rand_1x11_data2 = [0.506375, 0.330106, 0.017982, 0.859270, 0.140641, 0.327839, 0.275886, 0.162453, 0.807592, 0.318509, 0.921112]; |
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
145 %! errorbar (0:10, rand_1x11_data1, 0.25*rand_1x11_data2); |
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
146 |
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
147 %!demo |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
148 %! clf; |
11363
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
149 %! rand_1x11_data3 = [0.423650, 0.142331, 0.213195, 0.129301, 0.975891, 0.012872, 0.635327, 0.338829, 0.764997, 0.401798, 0.551850]; |
a0dfd7e8e3e2
Assign data used in demo plots for reproducibility between runs
Rik <octave@nomad.inbox5.com>
parents:
11099
diff
changeset
|
150 %! rand_1x11_data4 = [0.682566, 0.456342, 0.132390, 0.341292, 0.108633, 0.601553, 0.040455, 0.146665, 0.309187, 0.586291, 0.540149]; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
151 %! errorbar (0:10, rand_1x11_data3, rand_1x11_data4, '>'); |
10589 | 152 |
153 %!demo | |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
154 %! clf; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
155 %! x = 0:0.5:2*pi; |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
156 %! err = x/100; |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
157 %! y1 = sin (x); |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
158 %! y2 = cos (x); |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
159 %! hg = errorbar (x, y1, err, '~', x, y2, err, '>'); |
10589 | 160 |
161 %!demo | |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
162 %! clf; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
163 %! x = 0:0.5:2*pi; |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
164 %! err = x/100; |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
165 %! y1 = sin (x); |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
166 %! y2 = cos (x); |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
167 %! hg = errorbar (x, y1, err, err, '#r', x, y2, err, err, '#~'); |
10589 | 168 |
169 %!demo | |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
170 %! clf; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
171 %! x = 0:0.5:2*pi; |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
172 %! err = x/100; |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
173 %! y1 = sin (x); |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
174 %! y2 = cos (x); |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
175 %! hg = errorbar (x, y1, err, err, err, err, '~>', ... |
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
176 %! x, y2, err, err, err, err, '#~>-*'); |
10589 | 177 |