Mercurial > octave
annotate scripts/plot/draw/pie.m @ 23083:e9a0469dedd9 stable
maint: strip extra trailing newlines from files.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 20 Jan 2017 12:19:08 -0500 |
parents | bac0d6f07a3e |
children | ef4d915df748 3ac9f9ecfae5 |
rev | line source |
---|---|
22323
bac0d6f07a3e
maint: Update copyright notices for 2016.
John W. Eaton <jwe@octave.org>
parents:
22302
diff
changeset
|
1 ## Copyright (C) 2007-2016 David Bateman |
7118 | 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 | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
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 | |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
19 ## -*- texinfo -*- | |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
20 ## @deftypefn {} {} pie (@var{x}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
21 ## @deftypefnx {} {} pie (@dots{}, @var{explode}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
22 ## @deftypefnx {} {} pie (@dots{}, @var{labels}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
23 ## @deftypefnx {} {} pie (@var{hax}, @dots{}); |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
24 ## @deftypefnx {} {@var{h} =} pie (@dots{}); |
16814
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14359
diff
changeset
|
25 ## Plot a 2-D pie chart. |
7118 | 26 ## |
16814
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14359
diff
changeset
|
27 ## When called with a single vector argument, produce a pie chart of the |
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14359
diff
changeset
|
28 ## elements in @var{x}. The size of the ith slice is the percentage that the |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
29 ## element @var{x}i represents of the total sum of @var{x}: |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
30 ## @code{pct = @var{x}(i) / sum (@var{x})}. |
7118 | 31 ## |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
32 ## The optional input @var{explode} is a vector of the same length as @var{x} |
18812
9ac2357f19bc
doc: Replace "non-zero" with "nonzero" to match existing usage.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
33 ## that, if nonzero, "explodes" the slice from the pie chart. |
7118 | 34 ## |
16814
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14359
diff
changeset
|
35 ## The optional input @var{labels} is a cell array of strings of the same |
64e7bb01fce2
doc: Improve documentation for 2-D plot functions
Rik <rik@octave.org>
parents:
14359
diff
changeset
|
36 ## length as @var{x} specifying the label for each slice. |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
37 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17064
diff
changeset
|
38 ## If the first argument @var{hax} is an axes handle, then plot into this axis, |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17064
diff
changeset
|
39 ## rather than the current axes returned by @code{gca}. |
7118 | 40 ## |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
41 ## The optional return value @var{h} is a list of handles to the patch |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
42 ## and text objects generating the plot. |
7118 | 43 ## |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
44 ## Note: If @code{sum (@var{x}) @leq{} 1} then the elements of @var{x} are |
21546
f7f97d7e9294
doc: Wrap m-file docstrings to 79 characters + newline (80 total).
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
45 ## interpreted as percentages directly and are not normalized by @code{sum |
f7f97d7e9294
doc: Wrap m-file docstrings to 79 characters + newline (80 total).
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
46 ## (x)}. Furthermore, if the sum is less than 1 then there will be a missing |
f7f97d7e9294
doc: Wrap m-file docstrings to 79 characters + newline (80 total).
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
47 ## slice in the pie plot to represent the missing, unspecified percentage. |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
48 ## |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
49 ## @seealso{pie3, bar, hist, rose} |
7118 | 50 ## @end deftypefn |
51 | |
52 ## Very roughly based on pie.m from octave-forge whose author was | |
53 ## Daniel Heiserer <Daniel.heiserer@physik.tu-muenchen.de> | |
54 | |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
55 function h = pie (varargin) |
7118 | 56 |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
57 [hax, varargin, nargin] = __plt_get_axis_arg__ ("pie", varargin{:}); |
7215 | 58 |
7118 | 59 if (nargin < 1) |
60 print_usage (); | |
61 endif | |
62 | |
17211
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
63 oldfig = []; |
17301
68bcac3c043a
Correct inversion accidentally introduced in cset 87ba70043bfc.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
64 if (! isempty (hax)) |
17211
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
65 oldfig = get (0, "currentfigure"); |
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
66 endif |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
67 unwind_protect |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
68 hax = newplot (hax); |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
69 htmp = __pie__ ("pie", hax, varargin{:}); |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
70 unwind_protect_cleanup |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
71 if (! isempty (oldfig)) |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
72 set (0, "currentfigure", oldfig); |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
73 endif |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
74 end_unwind_protect |
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
75 |
7118 | 76 if (nargout > 0) |
17064
84e000930ca5
pie.m, pie3.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
77 h = htmp; |
7118 | 78 endif |
7119 | 79 |
7118 | 80 endfunction |
81 | |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
82 |
7120 | 83 %!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
|
84 %! clf; |
7120 | 85 %! pie ([3, 2, 1], [0, 0, 1]); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
86 %! colormap ([1,0,0;0,1,0;0,0,1;1,1,0;1,0,1;0,1,1]); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
21546
diff
changeset
|
87 %! title ("pie() with exploded wedge"); |
7120 | 88 |
89 %!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
|
90 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
21546
diff
changeset
|
91 %! pie ([3, 2, 1], [0, 0, 1], {"Cheddar", "Swiss", "Camembert"}); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
92 %! colormap ([1,0,0;0,1,0;0,0,1;1,1,0;1,0,1;0,1,1]); |
7120 | 93 %! axis ([-2,2,-2,2]); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
21546
diff
changeset
|
94 %! title ("pie() with labels"); |
17190
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
95 |
11341
3c7ba1e3dc21
Add missing option slice for pie and pie3
Kai Habel <kai.habel@gmx.de>
parents:
11330
diff
changeset
|
96 |
3c7ba1e3dc21
Add missing option slice for pie and pie3
Kai Habel <kai.habel@gmx.de>
parents:
11330
diff
changeset
|
97 %!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
|
98 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
21546
diff
changeset
|
99 %! pie ([0.17, 0.34, 0.41], {"Cheddar", "Swiss", "Camembert"}); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
100 %! colormap ([1,0,0;0,1,0;0,0,1;1,1,0;1,0,1;0,1,1]); |
11341
3c7ba1e3dc21
Add missing option slice for pie and pie3
Kai Habel <kai.habel@gmx.de>
parents:
11330
diff
changeset
|
101 %! axis ([-2,2,-2,2]); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
21546
diff
changeset
|
102 %! title ("pie() with missing slice"); |