annotate scripts/plot/ribbon.m @ 14237:11949c9795a0

Revamp %!demos in m-files to use Octave coding conventions on spacing, etc. Add clf() to all demos using plot features to get reproducibility. Use 64 as input to all colormaps (jet (64)) to get reproducibility. * bicubic.m, cell2mat.m, celldisp.m, cplxpair.m, interp1.m, interp2.m, interpft.m, interpn.m, profile.m, profshow.m, convhull.m, delaunay.m, griddata.m, inpolygon.m, voronoi.m, autumn.m, bone.m, contrast.m, cool.m, copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, image.m, imshow.m, jet.m, ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, white.m, winter.m, condest.m, onenormest.m, axis.m, clabel.m, colorbar.m, comet.m, comet3.m, compass.m, contour.m, contour3.m, contourf.m, cylinder.m, daspect.m, ellipsoid.m, errorbar.m, ezcontour.m, ezcontourf.m, ezmesh.m, ezmeshc.m, ezplot.m, ezplot3.m, ezpolar.m, ezsurf.m, ezsurfc.m, feather.m, fill.m, fplot.m, grid.m, hold.m, isosurface.m, legend.m, loglog.m, loglogerr.m, pareto.m, patch.m, pbaspect.m, pcolor.m, pie.m, pie3.m, plot3.m, plotmatrix.m, plotyy.m, polar.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m, ribbon.m, rose.m, scatter.m, scatter3.m, semilogx.m, semilogxerr.m, semilogy.m, semilogyerr.m, shading.m, slice.m, sombrero.m, stairs.m, stem.m, stem3.m, subplot.m, surf.m, surfc.m, surfl.m, surfnorm.m, text.m, title.m, trimesh.m, triplot.m, trisurf.m, uigetdir.m, uigetfile.m, uimenu.m, uiputfile.m, waitbar.m, xlim.m, ylim.m, zlim.m, mkpp.m, pchip.m, polyaffine.m, spline.m, bicgstab.m, cgs.m, gplot.m, pcg.m, pcr.m, treeplot.m, strtok.m, demo.m, example.m, rundemos.m, speed.m, test.m, calendar.m, datestr.m, datetick.m, weekday.m: Revamp %!demos to use Octave coding conventions on spacing, etc.
author Rik <octave@nomad.inbox5.com>
date Fri, 20 Jan 2012 12:59:53 -0800
parents 741340c02522
children c4fa5e0b6193
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 14092
diff changeset
1 ## Copyright (C) 2007-2012 Kai Habel
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
2 ##
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
3 ## This file is part of Octave.
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
4 ##
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
8 ## your option) any later version.
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
9 ##
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
13 ## General Public License for more details.
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
14 ##
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
17 ## <http://www.gnu.org/licenses/>.
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
18
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
19 ## -*- texinfo -*-
9143
74d5c1a4ca96 Eliminate 'unbalanced parentheses in @def...' error during texi2pdf.
Rik <rdrider0-list@yahoo.com>
parents: 9040
diff changeset
20 ## @deftypefn {Function File} {} ribbon (@var{x}, @var{y}, @var{width})
74d5c1a4ca96 Eliminate 'unbalanced parentheses in @def...' error during texi2pdf.
Rik <rdrider0-list@yahoo.com>
parents: 9040
diff changeset
21 ## @deftypefnx {Function File} {} ribbon (@var{y})
74d5c1a4ca96 Eliminate 'unbalanced parentheses in @def...' error during texi2pdf.
Rik <rdrider0-list@yahoo.com>
parents: 9040
diff changeset
22 ## @deftypefnx {Function File} {@var{h} =} ribbon (@dots{})
9040
dbd0c77e575e Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
23 ## Plot a ribbon plot for the columns of @var{y} vs. @var{x}. The
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
24 ## optional parameter @var{width} specifies the width of a single ribbon
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
25 ## (default is 0.75). If @var{x} is omitted, a vector containing the
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
26 ## row numbers is assumed (1:rows(Y)).
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
27 ##
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
28 ## The optional return value @var{h} is a vector of graphics handles to
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
29 ## the surface objects representing each ribbon.
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
30 ## @end deftypefn
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
31
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
32 ## Author: Kai Habel <kai.habel at gmx.de>
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
33
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
34 function h = ribbon (x, y, width = 0.75)
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
35
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
36 if (nargin < 1 || nargin > 3)
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
37 print_usage ();
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
38 endif
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
39
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
40 if (nargin == 1)
7166
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
41 y = x;
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
42 if (isvector (y))
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
43 y = y(:);
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
44 endif
7166
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
45 [nr, nc] = size (y);
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
46 x = repmat ((1:nr)', 1, nc);
8610
85c9906abfd1 use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents: 7650
diff changeset
47 endif
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
48
7166
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
49 if (isvector (x) && isvector (y))
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
50 if (length (x) != length (y))
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
51 error ("ribbon: vectors X and Y must have the same length");
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
52 else
7166
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
53 [x, y] = meshgrid (x, y);
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
54 endif
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
55 else
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
56 if (! size_equal (x, y))
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
57 error ("ribbon: matrices X and Y must have the same size");
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
58 endif
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
59 endif
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
60
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
61 newplot ();
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
62
7166
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
63 [nr, nc] = size (y);
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
64 htmp = zeros (nc, 1);
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
65
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
66 for c = nc:-1:1
7166
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
67 zz = [y(:,c), y(:,c)];
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
68 yy = x(:,c);
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
69 xx = [c - width / 2, c + width / 2];
4e7e5d51db86 [project @ 2007-11-12 22:17:08 by jwe]
jwe
parents: 7165
diff changeset
70 [xx, yy] = meshgrid (xx, yy);
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
71 cc = repmat (c, size (zz));
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
72 htmp(c) = surface (xx, yy, zz, cc);
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
73 endfor
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
74
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
75 if (! ishold ())
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
76 ax = get (htmp(1), "parent");
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
77 set (ax, "view", [-37.5, 30], "box", "off",
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
78 "xgrid", "on", "ygrid", "on", "zgrid", "on");
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
79 endif
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
80
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
81 if (nargout > 0)
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
82 h = htmp;
7163
d4d8c7b33e16 [project @ 2007-11-12 21:54:07 by jwe]
jwe
parents:
diff changeset
83 endif
7164
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
84
2b5e6c0a9df9 [project @ 2007-11-12 22:04:42 by jwe]
jwe
parents: 7163
diff changeset
85 endfunction
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7166
diff changeset
86
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
87
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7166
diff changeset
88 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14229
diff changeset
89 %! clf;
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7166
diff changeset
90 %! [x, y, z] = sombrero ();
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7166
diff changeset
91 %! [x, y] = meshgrid (x, y);
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7166
diff changeset
92 %! ribbon (y, z);
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
93
14229
741340c02522 ribbon.m: Simplify code and return a column vector of graphics handles.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
94 %!FIXME: Could have some input validation tests here