Mercurial > hg > octave-nkf
annotate scripts/plot/meshc.m @ 17067:b2cbf369837e
stem.m, stem3.m, __stem__.m: Upgrade to use new __plt_get_axis_arg__.
* scripts/plot/stem.m, scripts/plot/stem3.m: Rename tmp to htmp.
Redo docstrings.
* scripts/plot/private/__stem__.m: Overhaul to support new
__plt_get_axis_arg__. Left in a kluge where axis is set to gca.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 24 Jul 2013 23:12:46 -0700 |
parents | 328b579e08e9 |
children | eaab03308c0b |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
12133
diff
changeset
|
1 ## Copyright (C) 1996-2012 John W. Eaton |
6788 | 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. | |
6788 | 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/>. | |
6788 | 18 |
19 ## -*- texinfo -*- | |
20 ## @deftypefn {Function File} {} meshc (@var{x}, @var{y}, @var{z}) | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
21 ## Plot a mesh and contour given matrices @var{x}, and @var{y} from |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
22 ## @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
23 ## @var{y} coordinates of the mesh. If @var{x} and @var{y} are vectors, |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
24 ## then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)). Thus, |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
25 ## columns of @var{z} correspond to different @var{x} values and rows of |
6788 | 26 ## @var{z} correspond to different @var{y} values. |
27 ## @seealso{meshgrid, mesh, contour} | |
28 ## @end deftypefn | |
29 | |
30 function h = meshc (varargin) | |
31 | |
16985
c9346014fed2
Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
32 if (! all (cellfun ("isreal", varargin))) |
c9346014fed2
Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
33 error ("meshc: X, Y, Z, C arguments must be real"); |
c9346014fed2
Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
34 endif |
c9346014fed2
Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
35 |
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
|
36 [hax, varargin, nargin] = __plt_get_axis_arg__ ("meshc", varargin{:}); |
6788 | 37 |
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
|
38 oldfig = ifelse (isempty (hax), [], get (0, "currentfigure")); |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
39 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
|
40 hax = newplot (hax); |
6788 | 41 |
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
|
42 htmp = surface (hax, varargin{:}); |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
43 |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
44 ## FIXME - gnuplot does not support a filled surface and a |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
45 ## non-filled contour. 3D filled patches are also not supported. |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
46 ## Thus, the facecolor will be transparent for the gnuplot backend. |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
47 set (htmp, "facecolor", "w"); |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
48 set (htmp, "edgecolor", "flat"); |
6788 | 49 |
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
|
50 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
|
51 set (hax, "view", [-37.5, 30], |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
52 "xgrid", "on", "ygrid", "on", "zgrid", "on"); |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
53 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
|
54 |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
55 drawnow (); |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
56 |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
57 zmin = get (hax, "zlim")(1); |
6788 | 58 |
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
|
59 [~, htmp2] = __contour__ (hax, zmin, varargin{:}); |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
60 |
328b579e08e9
mesh.m,meshc.m,meshz.m: Overhaul to use newplot and __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16985
diff
changeset
|
61 htmp = [htmp; htmp2]; |
6788 | 62 |
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
|
63 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
|
64 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
|
65 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
|
66 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
|
67 end_unwind_protect |
6788 | 68 |
69 if (nargout > 0) | |
16985
c9346014fed2
Validate inputs are real for mesh, meshc, meshz functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
70 h = htmp; |
6788 | 71 endif |
7119 | 72 |
6788 | 73 endfunction |
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
|
74 |