annotate scripts/plot/draw/mesh.m @ 32074:03fe0b635d2e

quiver/quiver3: Overhaul input processing, validation, and add BISTs. * scripts/plot/draw/private/__quiver__.m: Overhaul numeric input validation. Simplify input classification using numeric input count switch statements and avoid quiver3 miscount due to scale factor. Add error messages for all valid numeric input combinations including vector x,y,z and scale factor. Move newplot command from quiver/quiver3 into __quiver__ after numeric input validation. Add hax as an output argument to return any changes back to calling function. * scripts/plot/draw/quiver.m: Remove newplot call. Update __quiver__ call to include hax as a return variable. Update docstring with note that line style and name-value pairs can both be provided but linstyle must appear first. Add BISTs to check standard inputs with single and multiple arrows, arrowhead shape, vector and array inputs, proper treatment of scaling factor "off", some simple input styles, and input validation BISTs to cover all numeric input errors. Added known failing BIST for linestyle+pair arrowhead showing when it should stay off (bug #64143). * scripts/plot/draw/quiver3.m: Remove newplot call. Update __quiver__ call to include hax as a return variable. Update docstring with note that line style and name-value pairs can both be provided but linstyle must appear first. Add BISTs to check standard inputs with single and multiple arrows, vector and array inputs, and input validation BISTs to cover all numeric input errors. * etc/NEWS.9.md: Update quiver/quiver3 improvement description under General Improvements.
author Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
date Wed, 03 May 2023 22:52:33 -0400
parents 597f3ee61a48
children 2e484f9f1f18
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ########################################################################
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 ##
31706
597f3ee61a48 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 30564
diff changeset
3 ## Copyright (C) 1993-2023 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 27898
diff changeset
4 ##
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
7 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
8 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
9 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24432
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
11 ## under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24432
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22355
diff changeset
13 ## (at your option) any later version.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
14 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22355
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22355
diff changeset
18 ## GNU General Public License for more details.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
19 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
20 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6405
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24432
diff changeset
22 ## <https://www.gnu.org/licenses/>.
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 ##
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ########################################################################
245
16a24e76d6e0 [project @ 1993-12-03 02:00:15 by jwe]
jwe
parents: 4
diff changeset
25
3368
a4cd1e9d9962 [project @ 1999-11-20 17:22:48 by jwe]
jwe
parents: 3063
diff changeset
26 ## -*- texinfo -*-
20852
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20097
diff changeset
27 ## @deftypefn {} {} mesh (@var{x}, @var{y}, @var{z})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20097
diff changeset
28 ## @deftypefnx {} {} mesh (@var{z})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20097
diff changeset
29 ## @deftypefnx {} {} mesh (@dots{}, @var{c})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20097
diff changeset
30 ## @deftypefnx {} {} mesh (@dots{}, @var{prop}, @var{val}, @dots{})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20097
diff changeset
31 ## @deftypefnx {} {} mesh (@var{hax}, @dots{})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20097
diff changeset
32 ## @deftypefnx {} {@var{h} =} mesh (@dots{})
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
33 ## Plot a 3-D wireframe mesh.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
34 ##
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
35 ## The wireframe mesh is plotted using rectangles. The vertices of the
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
36 ## rectangles [@var{x}, @var{y}] are typically the output of @code{meshgrid}.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
37 ## over a 2-D rectangular region in the x-y plane. @var{z} determines the
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
38 ## height above the plane of each vertex. If only a single @var{z} matrix is
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
39 ## given, then it is plotted over the meshgrid
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
40 ## @code{@var{x} = 1:columns (@var{z}), @var{y} = 1:rows (@var{z})}.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
41 ## Thus, columns of @var{z} correspond to different @var{x} values and rows
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 17211
diff changeset
42 ## of @var{z} correspond to different @var{y} values.
11101
1f9ab076f5f7 Include the 4 input (color) in the docstrings for mesh() and surf().
Ben Abbott <bpabbott@mac.com>
parents: 7149
diff changeset
43 ##
17450
43e0b711d7e0 doc: Correct accidental capitalization @var{Z} in mesh/surf docstrings.
Rik <rik@octave.org>
parents: 17301
diff changeset
44 ## The color of the mesh is computed by linearly scaling the @var{z} values
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
45 ## to fit the range of the current colormap. Use @code{caxis} and/or
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
46 ## change the colormap to control the appearance.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
47 ##
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
48 ## Optionally, the color of the mesh can be specified independently of @var{z}
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
49 ## by supplying a color matrix, @var{c}.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
50 ##
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
51 ## Any property/value pairs are passed directly to the underlying surface
28733
9342688e86b4 Updated property references for text and graphics functions (bug #50247)
Nicholas R. Jankowski <jankowskin@asme.org>
parents: 27923
diff changeset
52 ## object. The full list of properties is documented at
9342688e86b4 Updated property references for text and graphics functions (bug #50247)
Nicholas R. Jankowski <jankowskin@asme.org>
parents: 27923
diff changeset
53 ## @ref{Surface Properties}.
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
54 ##
24431
0c6cedafc71e doc: Use 'axes' rather than 'axis' appropriately in docstrings.
Rik <rik@octave.org>
parents: 23219
diff changeset
55 ## If the first argument @var{hax} is an axes handle, then plot into this axes,
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
56 ## rather than the current axes returned by @code{gca}.
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11575
diff changeset
57 ##
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11575
diff changeset
58 ## The optional return value @var{h} is a graphics handle to the created
14032
8497d89a17f1 mesh.m: Correct typo in documentation
Rik <octave@nomad.inbox5.com>
parents: 14001
diff changeset
59 ## surface object.
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17066
diff changeset
60 ##
30329
81d26e8481a6 maint: Shorten @seealso lines to less than 80 characters (bug #57599)
Rik <rik@octave.org>
parents: 29358
diff changeset
61 ## @seealso{ezmesh, meshc, meshz, trimesh, contour, surf, surface, meshgrid,
81d26e8481a6 maint: Shorten @seealso lines to less than 80 characters (bug #57599)
Rik <rik@octave.org>
parents: 29358
diff changeset
62 ## hidden, shading, colormap, caxis}
3368
a4cd1e9d9962 [project @ 1999-11-20 17:22:48 by jwe]
jwe
parents: 3063
diff changeset
63 ## @end deftypefn
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
64
7109
5436efbf35e3 [project @ 2007-11-06 22:16:25 by jwe]
jwe
parents: 7017
diff changeset
65 function h = mesh (varargin)
6172
2de853a110df [project @ 2006-11-15 22:53:47 by jwe]
jwe
parents: 6158
diff changeset
66
16985
c9346014fed2 Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents: 16828
diff changeset
67 if (! all (cellfun ("isreal", varargin)))
c9346014fed2 Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents: 16828
diff changeset
68 error ("mesh: X, Y, Z, C arguments must be real");
c9346014fed2 Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents: 16828
diff changeset
69 endif
c9346014fed2 Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents: 16828
diff changeset
70
17066
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
71 [hax, varargin, nargin] = __plt_get_axis_arg__ ("mesh", varargin{:});
6390
334499d75c5c [project @ 2007-03-07 18:11:28 by jwe]
jwe
parents: 6257
diff changeset
72
17211
87ba70043bfc Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents: 17190
diff changeset
73 oldfig = [];
17301
68bcac3c043a Correct inversion accidentally introduced in cset 87ba70043bfc.
Rik <rik@octave.org>
parents: 17281
diff changeset
74 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
75 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
76 endif
17066
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
77 unwind_protect
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
78 hax = newplot (hax);
17126
26589abbc78d Don't pass axis handle unnecessarily from high level to low level plot functions.
Rik <rik@octave.org>
parents: 17122
diff changeset
79
22355
886530282db9 Set "facelighting" and "edgelighting" for mesh plots (bug #48507).
Markus Muetzel <markus.muetzel@gmx.de>
parents: 22323
diff changeset
80 mesh_props = {"facecolor", "w", "edgecolor", "flat", ...
886530282db9 Set "facelighting" and "edgelighting" for mesh plots (bug #48507).
Markus Muetzel <markus.muetzel@gmx.de>
parents: 22323
diff changeset
81 "facelighting", "none", "edgelighting", "flat"};
18896
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
82 chararg = find (cellfun ("isclass", varargin, "char"), 1);
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
83 if (isempty (chararg))
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
84 htmp = surface (varargin{:}, mesh_props{:});
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
85 else
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
86 htmp = surface (varargin{1:chararg-1}, mesh_props{:},
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
87 varargin{chararg:end});
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
88 endif
7110
0e63f1126f01 [project @ 2007-11-06 22:36:22 by jwe]
jwe
parents: 7109
diff changeset
89
17066
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
90 if (! ishold ())
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
91 set (hax, "view", [-37.5, 30],
17126
26589abbc78d Don't pass axis handle unnecessarily from high level to low level plot functions.
Rik <rik@octave.org>
parents: 17122
diff changeset
92 "xgrid", "on", "ygrid", "on", "zgrid", "on");
17066
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
93 endif
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
94 unwind_protect_cleanup
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
95 if (! isempty (oldfig))
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
96 set (0, "currentfigure", oldfig);
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
97 endif
328b579e08e9 mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 16985
diff changeset
98 end_unwind_protect
7110
0e63f1126f01 [project @ 2007-11-06 22:36:22 by jwe]
jwe
parents: 7109
diff changeset
99
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents: 6172
diff changeset
100 if (nargout > 0)
16985
c9346014fed2 Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents: 16828
diff changeset
101 h = htmp;
6154
08f0dabf17b9 [project @ 2006-11-13 18:30:25 by jwe]
jwe
parents: 6146
diff changeset
102 endif
08f0dabf17b9 [project @ 2006-11-13 18:30:25 by jwe]
jwe
parents: 6146
diff changeset
103
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
104 endfunction
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11575
diff changeset
105
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11575
diff changeset
106
14411
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
107 %!demo
16828
ddac88d32d6a Make demos in plot m-files compatible with Matlab for running comparison script.
Rik <rik@octave.org>
parents: 14868
diff changeset
108 %! clf;
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14412
diff changeset
109 %! x = logspace (0,1,11);
14411
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
110 %! z = x'*x;
17190
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17126
diff changeset
111 %! mesh (x, x, z);
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
112 %! xlabel "X-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
113 %! ylabel "Y-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
114 %! zlabel "Z-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
115 %! title ("mesh() with color proportional to height");
17190
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17126
diff changeset
116
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17126
diff changeset
117 %!demo
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17126
diff changeset
118 %! clf;
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17126
diff changeset
119 %! x = logspace (0,1,11);
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17126
diff changeset
120 %! z = x'*x;
14411
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
121 %! mesh (x, x, z, z.^2);
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
122 %! xlabel "X-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
123 %! ylabel "Y-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
124 %! zlabel "linear scale";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
125 %! title ("mesh() with color proportional to Z^2");
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11575
diff changeset
126
14411
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
127 %!demo
16828
ddac88d32d6a Make demos in plot m-files compatible with Matlab for running comparison script.
Rik <rik@octave.org>
parents: 14868
diff changeset
128 %! clf;
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14412
diff changeset
129 %! x = logspace (0,1,11);
14411
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
130 %! z = x'*x;
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
131 %! mesh (x, x, z, z.^2);
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
132 %! set (gca, "zscale", "log");
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
133 %! xlabel "X-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
134 %! ylabel "Y-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
135 %! zlabel "log scale";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
136 %! title ({"mesh() with color proportional to Z^2", "Z-axis is log scale"});
18924
9a5e03801d23 Update some plot %!demos so that they run under Matlab.
Rik <rik@octave.org>
parents: 18896
diff changeset
137 %! try
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
138 %! if (strcmp (get (gcf, "__graphics_toolkit__"), "gnuplot"))
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
139 %! title ({"Gnuplot: mesh color is wrong", "This is a Gnuplot bug"});
18924
9a5e03801d23 Update some plot %!demos so that they run under Matlab.
Rik <rik@octave.org>
parents: 18896
diff changeset
140 %! endif
9a5e03801d23 Update some plot %!demos so that they run under Matlab.
Rik <rik@octave.org>
parents: 18896
diff changeset
141 %! catch
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
142 %! end_try_catch
14411
b9630dfc4fd9 Add mesh() demos.
Ben Abbott <bpabbott@mac.com>
parents: 14138
diff changeset
143
18896
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
144 %!demo
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
145 %! clf;
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
146 %! x = logspace (0,1,11);
4d75bda5df80 mesh, meshc, surfc: Allow user provided properties to override defaults.
Rik <rik@octave.org>
parents: 17744
diff changeset
147 %! z = x'*x;
22302
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
148 %! mesh (x, x, z, "facecolor", "none", "edgecolor", "c");
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
149 %! xlabel "X-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
150 %! ylabel "Y-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
151 %! zlabel "Z-axis";
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
152 %! title ({"mesh() default properties overridden", ...
1c4cd12987f5 Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents: 20852
diff changeset
153 %! "transparent mesh with cyan color"});