Mercurial > hg > octave-lyh
annotate scripts/plot/contourf.m @ 8909:52596fe9f178
__go_draw_axes__.m: Preserve column vector orientation for the axes children while removing the axis label & title handles.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Thu, 05 Mar 2009 00:55:56 -0500 |
parents | ac7f334d9652 |
children | eb63fbe60fab |
rev | line source |
---|---|
7042 | 1 ## Copyright (C) 2007 Kai Habel |
2 ## Copyright (C) 2003 Shai Ayal | |
3 ## | |
7164 | 4 ## This file is part of Octave. |
5 ## | |
6 ## Octave is free software; you can redistribute it and/or modify it | |
7042 | 7 ## under the terms of the GNU General Public License as published by |
7164 | 8 ## the Free Software Foundation; either version 3 of the License, or (at |
9 ## your option) any later version. | |
7042 | 10 ## |
7164 | 11 ## Octave is distributed in the hope that it will be useful, but |
7042 | 12 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 ## General Public License for more details. | |
15 ## | |
16 ## You should have received a copy of the GNU General Public License | |
7164 | 17 ## along with Octave; see the file COPYING. If not, see |
18 ## <http://www.gnu.org/licenses/>. | |
7042 | 19 |
20 ## -*- texinfo -*- | |
21 ## @deftypefn {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}, @var{lvl}) | |
22 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}, @var{n}) | |
23 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{x}, @var{y}, @var{z}) | |
24 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}, @var{n}) | |
25 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}, @var{lvl}) | |
26 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{z}) | |
27 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@var{ax}, @dots{}) | |
28 ## @deftypefnx {Function File} {[@var{c}, @var{h}] =} contourf (@dots{}, @var{"property"}, @var{val}) | |
29 ## Compute and plot filled contours of the matrix @var{z}. | |
30 ## Parameters @var{x}, @var{y} and @var{n} or @var{lvl} are optional. | |
31 ## | |
32 ## The return value @var{c} is a 2xn matrix containing the contour lines | |
33 ## as described in the help to the contourc function. | |
34 ## | |
35 ## The return value @var{h} is handle-vector to the patch objects creating | |
36 ## the filled contours. | |
37 ## | |
38 ## If @var{x} and @var{y} are ommited they are taken as the row/column | |
39 ## index of @var{z}. @var{n} is a scalar denoting the number of lines | |
40 ## to compute. Alternatively @var{lvl} is a vector containing the | |
41 ## contour levels. If only one value (e.g. lvl0) is wanted, set | |
42 ## @var{lvl} to [lvl0, lvl0]. If both @var{n} or @var{lvl} are omitted | |
43 ## a default value of 10 contour level is assumed. | |
44 ## | |
45 ## If provided, the filled contours are added to the axes object | |
46 ## @var{ax} instead of the current axis. | |
47 ## | |
48 ## The following example plots filled contours of the @code{peaks} | |
49 ## function. | |
50 ## @example | |
51 ## [x, y, z] = peaks (50); | |
52 ## contourf (x, y, z, -7:9) | |
53 ## @end example | |
54 ## @seealso{contour, contourc, patch} | |
55 ## @end deftypefn | |
56 | |
57 ## Author: Kai Habel <kai.habel@gmx.de> | |
7327 | 58 ## Author: Shai Ayal <shaiay@users.sourceforge.net> |
7042 | 59 |
8289
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
60 function [c, h] = contourf (varargin) |
7042 | 61 |
8289
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
62 [xh, varargin] = __plt_get_axis_arg__ ("contour", varargin{:}); |
7042 | 63 |
8289
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
64 oldh = gca (); |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
65 unwind_protect |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
66 axes (xh); |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
67 newplot (); |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
68 [ctmp, htmp] = __contour__ (xh, "none", "fill", "on", |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
69 "linecolor", "black", varargin{:}); |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
70 unwind_protect_cleanup |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
71 axes (oldh); |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
72 end_unwind_protect |
7570
8bf1bcb0ad8f
set axes layer property to "top"
John W. Eaton <jwe@octave.org>
parents:
7331
diff
changeset
|
73 |
7042 | 74 if (nargout > 0) |
8289
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
75 c = ctmp; |
ac7f334d9652
Add contour group objects and the clabel function
David Bateman <dbateman@free.fr>
parents:
8227
diff
changeset
|
76 h = htmp; |
7042 | 77 endif |
78 endfunction | |
7245 | 79 |
80 %!demo | |
81 %! [x, y, z] = peaks (50); | |
82 %! contourf (x, y, z, -7:9) | |
7327 | 83 |
84 %!demo | |
7331 | 85 %! [theta, r] = meshgrid (linspace (0, 2*pi, 64), linspace(0,1,64)); |
86 %! [X, Y] = pol2cart (theta, r); | |
87 %! Z = sin(2*theta).*(1-r); | |
88 %! contourf(X, Y, abs(Z), 10) |