Mercurial > hg > octave-nkf
annotate scripts/plot/stem.m @ 8052:961d4c52ffae
Convert stem and stem3 to use stem series objects
* * *
Use property inheritance and don't call drawnow in __stem__
author | David Bateman <dbateman@free.fr> |
---|---|
date | Mon, 25 Aug 2008 15:45:24 -0400 |
parents | d65670971cbc |
children | 3b53b25e2550 |
rev | line source |
---|---|
7017 | 1 ## Copyright (C) 2006, 2007 Michel D. Schmid |
6303 | 2 ## |
6440 | 3 ## This file is part of Octave. |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6303 | 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. | |
6303 | 9 ## |
6440 | 10 ## Octave is distributed in the hope that it will be useful, but |
6303 | 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/>. | |
6303 | 18 |
19 ## -*- texinfo -*- | |
20 ## @deftypefn {Function File} {@var{h} =} stem (@var{x}, @var{y}, @var{linespec}) | |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{h} =} stem (@dots{}, "filled") |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
22 ## Plot a stem graph from two vectors of x-y data. If only one argument |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
23 ## is given, it is taken as the y-values and the x coordinates are taken |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
24 ## from the indicies of the elements. |
6303 | 25 ## |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
26 ## If @var{y} is a matrix, then each column of the matrix is plotted as |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
27 ## a separate stem graph. In this case @var{x} can either be a vector, |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
28 ## the same length as the number of rows in @var{y}, or it can be a |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
29 ## matrix of the same size as @var{y}. |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
30 ## |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
31 ## The default color is @code{"r"} (red). The default line style is |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
32 ## @code{"-"} and the default marker is @code{"o"}. The line style can |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
33 ## be altered by the @code{linespec} argument in the same manner as the |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
34 ## @code{plot} command. For example |
6303 | 35 ## |
36 ## @example | |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
37 ## @group |
6303 | 38 ## x = 1:10; |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
39 ## y = ones (1, length (x))*2.*x; |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
40 ## stem (x, y, "b"); |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
41 ## @end group |
6303 | 42 ## @end example |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
43 ## |
6303 | 44 ## @noindent |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
45 ## plots 10 stems with heights from 2 to 20 in blue; |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
46 ## |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
47 ## The return value of @code{stem} is a vector if "stem series" graphics |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
48 ## handles, with one handle per column of the variable @var{y}. This |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
49 ## handle regroups the elements of the stem graph together as the |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
50 ## children of the "stem series" handle, allowing them to be altered |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
51 ## together. For example |
6303 | 52 ## |
53 ## @example | |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
54 ## @group |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
55 ## x = [0 : 10].'; |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
56 ## y = [sin(x), cos(x)] |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
57 ## h = stem (x, y); |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
58 ## set (h(2), "color", "g"); |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
59 ## set (h(1), "basevalue", -1) |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
60 ## @end group |
6303 | 61 ## @end example |
62 ## | |
63 ## @noindent | |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
64 ## changes the color of the second "stem series" and moves the base line |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
65 ## of the first. |
6303 | 66 ## @seealso{bar, barh, plot} |
67 ## @end deftypefn | |
68 | |
69 ## Author: Michel D. Schmid <michaelschmid@users.sourceforge.net> | |
70 ## Adapted-by: jwe | |
71 | |
72 function h = stem (varargin) | |
73 | |
7218 | 74 if (nargin < 1 || nargin > 3) |
75 print_usage (); | |
76 endif | |
77 | |
7217 | 78 tmp = __stem__ (false, varargin{:}); |
6303 | 79 |
80 if (nargout > 0) | |
7217 | 81 h = tmp; |
6303 | 82 endif |
83 | |
84 endfunction | |
7245 | 85 |
86 %!demo | |
87 %! x = 1:10; | |
88 %! stem (x); | |
89 | |
90 %!demo | |
91 %! x = 1:10; | |
92 %! y = ones (1, length (x))*2.*x; | |
93 %! stem (x, y); | |
94 | |
95 %!demo | |
96 %! x = 1:10; | |
97 %! y = ones (size (x))*2.*x; | |
98 %! h = stem (x, y, "b"); | |
99 | |
100 %!demo | |
101 %! x = 1:10; | |
102 %! y = ones (size (x))*2.*x; | |
103 %! h = stem (x, y, "-.k"); | |
104 | |
105 %!demo | |
106 %! x = 1:10; | |
107 %! y = ones (size (x))*2.*x; | |
108 %! h = stem (x, y, "-.k."); | |
109 | |
110 %!demo | |
111 %! x = 1:10; | |
112 %! y = ones (size (x))*2.*x; | |
113 %! h = stem (x, y, "fill"); | |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
114 |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
115 %!demo |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
116 %! x = [0 : 10].'; |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
117 %! y = [sin(x), cos(x)]; |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
118 %! h = stem (x, y); |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
119 %! set (h(2), "color", "g"); |
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
7245
diff
changeset
|
120 %! set (h(1), "basevalue", -1) |