annotate scripts/plot/pareto.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 72c96de7a403
children 4506eade9f04
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: 14001
diff changeset
1 ## Copyright (C) 2007-2012 David Bateman
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
2 ## Copyright (C) 2003 Alberto Terruzzi
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
3 ##
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
4 ## This file is part of Octave.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
5 ##
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
6 ## Octave is free software; you can redistribute it and/or modify it
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
7 ## under the terms of the GNU General Public License as published by
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
8 ## the Free Software Foundation; either version 3 of the License, or (at
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
9 ## your option) any later version.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
10 ##
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
11 ## Octave is distributed in the hope that it will be useful, but
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
14 ## General Public License for more details.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
15 ##
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
16 ## You should have received a copy of the GNU General Public License
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
17 ## along with Octave; see the file COPYING. If not, see
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
18 ## <http://www.gnu.org/licenses/>.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
19
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
20 ## -*- texinfo -*-
10793
be55736a0783 Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents: 10549
diff changeset
21 ## @deftypefn {Function File} {} pareto (@var{x})
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
22 ## @deftypefnx {Function File} {} pareto (@var{x}, @var{y})
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
23 ## @deftypefnx {Function File} {} pareto (@var{h}, @dots{})
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
24 ## @deftypefnx {Function File} {@var{h} =} pareto (@dots{})
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
25 ## Draw a Pareto chart, also called ABC chart. A Pareto chart is a bar graph
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
26 ## used to arrange information in such a way that priorities for process
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
27 ## improvement can be established. It organizes and displays information
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
28 ## to show the relative importance of data. The chart is similar to the
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
29 ## histogram or bar chart, except that the bars are arranged in decreasing
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
30 ## order from left to right along the abscissa.
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
31 ##
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
32 ## The fundamental idea (Pareto principle) behind the use of Pareto
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
33 ## diagrams is that the majority of an effect is due to a small subset of the
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
34 ## causes, so for quality improvement the first few (as presented on the
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
35 ## diagram) contributing causes to a problem usually account for the majority
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
36 ## of the result. Thus, targeting these "major causes" for elimination
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
37 ## results in the most cost-effective improvement scheme.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
38 ##
9040
dbd0c77e575e Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
39 ## The data are passed as @var{x} and the abscissa as @var{y}. If @var{y} is
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
40 ## absent, then the abscissa are assumed to be @code{1 : length (@var{x})}.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
41 ## @var{y} can be a string array, a cell array of strings or a numerical
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
42 ## vector.
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
43 ##
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
44 ## The optional return value @var{h} is a 2-element vector with a graphics
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
45 ## handle for the created bar plot and a second handle for the created line
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
46 ## plot.
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
47 ##
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
48 ## An example of the use of @code{pareto} is
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
49 ##
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
50 ## @example
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
51 ## @group
9153
5247e89688e1 Eliminate most overfull errors when running texi2pdf for generating pdf documentation
Rik <rdrider0-list@yahoo.com>
parents: 9040
diff changeset
52 ## Cheese = @{"Cheddar", "Swiss", "Camembert", ...
5247e89688e1 Eliminate most overfull errors when running texi2pdf for generating pdf documentation
Rik <rdrider0-list@yahoo.com>
parents: 9040
diff changeset
53 ## "Munster", "Stilton", "Blue"@};
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
54 ## Sold = [105, 30, 70, 10, 15, 20];
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
55 ## pareto (Sold, Cheese);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
56 ## @end group
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
57 ## @end example
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
58 ## @end deftypefn
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
59
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
60 function h = pareto (varargin)
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
61
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
62 if (nargin != 1 && nargin != 2)
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
63 print_usage ();
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
64 endif
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
65
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
66 x = varargin {1}(:).';
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
67 if (nargin == 2)
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
68 y = varargin {2}(:).';
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
69 if (! iscell (y))
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
70 if (ischar (y))
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 9153
diff changeset
71 y = cellstr (y);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
72 else
12931
cefd568ea073 Replace function handles with function names in cellfun calls for 15% speedup.
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
73 y = cellfun ("num2str", num2cell (y), "uniformoutput", false);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
74 endif
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
75 endif
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
76 else
12931
cefd568ea073 Replace function handles with function names in cellfun calls for 15% speedup.
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
77 y = cellfun ("int2str", num2cell (1 : numel(x)),
11191
01ddaedd6ad5 Reverse changeset b1f4bdc276b6. Use all lower case for "uniformoutput" option.
Rik <octave@nomad.inbox5.com>
parents: 11188
diff changeset
78 "uniformoutput", false);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
79 endif
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
80
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
81 [x, idx] = sort (x, "descend");
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
82 y = y (idx);
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
83 cdf = cumsum (x);
7221
2636c0846924 [project @ 2007-11-29 23:27:32 by dbateman]
dbateman
parents: 7220
diff changeset
84 maxcdf = max(cdf);
2636c0846924 [project @ 2007-11-29 23:27:32 by dbateman]
dbateman
parents: 7220
diff changeset
85 cdf = cdf ./ maxcdf;
7228
685c186d8f62 [project @ 2007-11-30 16:43:12 by jwe]
jwe
parents: 7221
diff changeset
86 cdf95 = cdf - 0.95;
685c186d8f62 [project @ 2007-11-30 16:43:12 by jwe]
jwe
parents: 7221
diff changeset
87 idx95 = find(sign(cdf95(1:end-1)) != sign(cdf95(2:end)))(1);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
88
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
89 [ax, hbar, hline] = plotyy (1 : idx95, x (1 : idx95),
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
90 1 : length(cdf), 100 .* cdf,
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 9153
diff changeset
91 @bar, @plot);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
92
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
93 axis (ax(1), [1 - 0.6, idx95 + 0.6, 0, maxcdf]);
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
94 axis (ax(2), [1 - 0.6, idx95 + 0.6, 0, 100]);
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
95 set (ax(2), "ytick", [0, 20, 40, 60, 80, 100],
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
96 "yticklabel", {"0%", "20%", "40%", "60%", "80%", "100%"});
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
97 set (ax(1), "xtick", 1 : idx95, "xticklabel", y (1: idx95));
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
98 set (ax(2), "xtick", 1 : idx95, "xticklabel", y (1: idx95));
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
99
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
100 if (nargout > 0)
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
101 h = [hbar; hline];
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
102 endif
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
103
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
104 endfunction
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
105
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
106
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
107 %!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
108 %! clf;
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
109 %! colormap (jet (64));
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
110 %! Cheese = {"Cheddar", "Swiss", "Camembert", "Munster", "Stilton", "Blue"};
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
111 %! Sold = [105, 30, 70, 10, 15, 20];
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
112 %! pareto (Sold, Cheese);
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
113
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
114 %!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
115 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
116 %! % Suppose that we want establish which products makes 80% of turnover.
7220
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
117 %! Codes = {"AB4","BD7","CF8","CC5","AD11","BB5","BB3","AD8","DF3","DE7"};
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
118 %! Value = [2.35 7.9 2.45 1.1 0.15 13.45 5.4 2.05 0.85 1.65]';
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
119 %! SoldUnits = [54723 41114 16939 1576091 168000 687197 120222 168195, ...
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
120 %! 1084118 55576]';
66081694ffb8 [project @ 2007-11-29 23:14:07 by jwe]
jwe
parents:
diff changeset
121 %! pareto (Value.*SoldUnits, Codes);
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 12931
diff changeset
122