Mercurial > hg > octave-lyh
annotate scripts/plot/shading.m @ 17129:b5d6314314fc
Change various plot functions to take advantage of new isaxes() function.
* scripts/geometry/voronoi.m, scripts/image/imagesc.m,
scripts/plot/__plt_get_axis_arg__.m, scripts/plot/axes.m, scripts/plot/cla.m,
scripts/plot/colorbar.m, scripts/plot/hold.m, scripts/plot/legend.m,
scripts/plot/plotmatrix.m, scripts/plot/plotyy.m,
scripts/plot/private/__errplot__.m, scripts/plot/private/__plt__.m,
scripts/plot/view.m: Use new isaxes function to simplify code.
* scripts/plot/shading.m: Use Octave convention for spacing of parentheses.
* scripts/plot/zlabel.m: Correct %!test incorrectly calling plot3 with figure
handle.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 31 Jul 2013 16:27:49 -0700 |
parents | eaab03308c0b |
children | bc924baa2c4e |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14092
diff
changeset
|
1 ## Copyright (C) 2006-2012 Kai Habel |
7109 | 2 ## |
7164 | 3 ## This file is part of Octave. |
4 ## | |
7109 | 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 | |
7164 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
7109 | 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 | |
7164 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
7109 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10635
diff
changeset
|
20 ## @deftypefn {Function File} {} shading (@var{type}) |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
21 ## @deftypefnx {Function File} {} shading (@var{hax}, @var{type}) |
17126
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17105
diff
changeset
|
22 ## Set the shading of patch or surface graphic objects. |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
23 ## |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
24 ## Valid arguments for @var{type} are |
7978
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
25 ## |
11595
5ec6aa05638d
Prevent doubled quotes around @table items in Info.
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
26 ## @table @asis |
7978
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
27 ## @item "flat" |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
28 ## Single colored patches with invisible edges. |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
29 ## |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
30 ## @item "faceted" |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
31 ## Single colored patches with visible edges. |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
32 ## |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
33 ## @item "interp" |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
34 ## Color between patch vertices are interpolated and the patch edges are |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
35 ## invisible. |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
36 ## @end table |
f8514786c490
Clarify help of the shading function
David Bateman <dbateman@free.fr>
parents:
7249
diff
changeset
|
37 ## |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
38 ## If the first argument @var{hax} is an axes handle, then plot into this axis, |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
39 ## rather than the current axes returned by @code{gca}. |
17126
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17105
diff
changeset
|
40 ## @seealso{fill, mesh, patch, pcolor, surf, surface, hidden} |
7109 | 41 ## @end deftypefn |
42 | |
7110 | 43 ## Author: Kai Habel <kai.habel@gmx.de> |
44 | |
7249 | 45 function shading (varargin) |
46 | |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
47 [hax, varargin, nargin] = __plt_get_axis_arg__ ("shading", varargin{:}); |
7109 | 48 |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
49 if (nargin != 1) |
7110 | 50 print_usage (); |
51 endif | |
7109 | 52 |
7249 | 53 mode = varargin{1}; |
54 | |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
55 if (isempty (hax)) |
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
56 hax = gca (); |
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
57 endif |
7110 | 58 |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
59 ## Find all patch and surface objects that are descendants of hax |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
60 ## and which are not part of a contour plot hggroup. |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
61 hlist = []; |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
62 kids = get (hax, "children"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
63 while (! isempty (kids)) |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
64 types = get (kids, "type"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
65 hlist = [hlist; kids(strcmp(types, "patch"))]; |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
66 hlist = [hlist; kids(strcmp(types, "surface"))]; |
17129
b5d6314314fc
Change various plot functions to take advantage of new isaxes() function.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
67 parents = kids(strcmp (types, "axes")); |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
68 hglist = kids(strcmp (types, "hggroup")); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
69 for i = 1 : numel (hglist) |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
70 props = get (hglist(i)); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
71 if (! isfield (props, "levelstep")) |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
72 parents(end+1) = hglist(i); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
73 endif |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
74 endfor |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
75 kids = get (parents, "children"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
76 endwhile |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
77 |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
78 ## FIXME: This is the old, simple code. |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
79 ## Unfortunately, it also shades contour plots which is not desirable. |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
80 ##hp = findobj (hax, "type", "patch"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
81 ##hs = findobj (hax, "type", "surface"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
82 ##hlist = [hp(:); hs(:)]; |
7110 | 83 |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
84 switch (lower (mode)) |
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
85 case "flat" |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
86 set (hlist, "facecolor", "flat"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
87 set (hlist, "edgecolor", "none"); |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
88 case "interp" |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
89 set (hlist, "facecolor", "interp"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
90 set (hlist, "edgecolor", "none"); |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
91 case "faceted" |
17105
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
92 set (hlist, "facecolor", "flat"); |
c2b2c7ddf93c
shading.m: Don't apply shading to contour hggroups.
Rik <rik@octave.org>
parents:
17074
diff
changeset
|
93 set (hlist, "edgecolor", [0 0 0]); |
17074
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
94 otherwise |
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
95 error ('shading: Invalid MODE "%s"', mode); |
bade805dc0af
shading.m: Update to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
96 endswitch |
7110 | 97 |
7109 | 98 endfunction |
8166
4024fc815f8d
__go_draw_axes__.m: Fix interpolation of facecolors.
Ben Abbott <bpabbott@mac.com>
parents:
7978
diff
changeset
|
99 |
13967
9ff0273cd054
shading.m: Add demos for 'flat' option
Rik <octave@nomad.inbox5.com>
parents:
12437
diff
changeset
|
100 |
8166
4024fc815f8d
__go_draw_axes__.m: Fix interpolation of facecolors.
Ben Abbott <bpabbott@mac.com>
parents:
7978
diff
changeset
|
101 %!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
|
102 %! clf; |
14247
c4fa5e0b6193
test: Make surface demos reproducible by setting colormap to default at start of demo.
Rik <octave@nomad.inbox5.com>
parents:
14245
diff
changeset
|
103 %! colormap ('default'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
104 %! sombrero (); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
105 %! shading faceted; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
106 %! title ('shading ''faceted'''); |
13967
9ff0273cd054
shading.m: Add demos for 'flat' option
Rik <octave@nomad.inbox5.com>
parents:
12437
diff
changeset
|
107 |
9ff0273cd054
shading.m: Add demos for 'flat' option
Rik <octave@nomad.inbox5.com>
parents:
12437
diff
changeset
|
108 %!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
|
109 %! clf; |
14247
c4fa5e0b6193
test: Make surface demos reproducible by setting colormap to default at start of demo.
Rik <octave@nomad.inbox5.com>
parents:
14245
diff
changeset
|
110 %! colormap ('default'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
111 %! sombrero (); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
112 %! shading flat; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
113 %! title ('shading ''flat'''); |
8765
cf2163418140
Trivial change to shading.m and surfl.m demos.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
114 |
cf2163418140
Trivial change to shading.m and surfl.m demos.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
115 %!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
|
116 %! clf; |
14247
c4fa5e0b6193
test: Make surface demos reproducible by setting colormap to default at start of demo.
Rik <octave@nomad.inbox5.com>
parents:
14245
diff
changeset
|
117 %! colormap ('default'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
118 %! sombrero (); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
119 %! shading interp; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
120 %! title ('shading ''interp'''); |
8765
cf2163418140
Trivial change to shading.m and surfl.m demos.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
121 |
cf2163418140
Trivial change to shading.m and surfl.m demos.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
122 %!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
|
123 %! clf; |
14247
c4fa5e0b6193
test: Make surface demos reproducible by setting colormap to default at start of demo.
Rik <octave@nomad.inbox5.com>
parents:
14245
diff
changeset
|
124 %! colormap ('default'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
125 %! pcolor (peaks ()); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
126 %! shading faceted; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
127 %! title ('shading ''faceted'''); |
13967
9ff0273cd054
shading.m: Add demos for 'flat' option
Rik <octave@nomad.inbox5.com>
parents:
12437
diff
changeset
|
128 |
9ff0273cd054
shading.m: Add demos for 'flat' option
Rik <octave@nomad.inbox5.com>
parents:
12437
diff
changeset
|
129 %!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
|
130 %! clf; |
14247
c4fa5e0b6193
test: Make surface demos reproducible by setting colormap to default at start of demo.
Rik <octave@nomad.inbox5.com>
parents:
14245
diff
changeset
|
131 %! colormap ('default'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
132 %! pcolor (peaks ()); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
133 %! shading flat; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
134 %! title ('shading ''flat'''); |
8765
cf2163418140
Trivial change to shading.m and surfl.m demos.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
135 |
cf2163418140
Trivial change to shading.m and surfl.m demos.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
136 %!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
|
137 %! clf; |
14247
c4fa5e0b6193
test: Make surface demos reproducible by setting colormap to default at start of demo.
Rik <octave@nomad.inbox5.com>
parents:
14245
diff
changeset
|
138 %! colormap ('default'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
139 %! pcolor (peaks ()); |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
140 %! shading interp; |
14245
4506eade9f04
Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents:
14237
diff
changeset
|
141 %! title ('shading ''interp'''); |
13967
9ff0273cd054
shading.m: Add demos for 'flat' option
Rik <octave@nomad.inbox5.com>
parents:
12437
diff
changeset
|
142 |