annotate scripts/plot/draw/loglog.m @ 19016:87c3848cf3c0

Fix bug when hggroup used with primitive graphic object (bug #42532). * image.m, text.m, line.m, patch.m: __plt_get_axis_arg__ will return axis and hggroup when 'parent' property is used. Select the first returned object which is the axes, rather than passing both axis and hggroup to further plot subroutines.
author Rik <rik@octave.org>
date Tue, 10 Jun 2014 14:03:09 -0700
parents d63878346099
children 4197fc428c7d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17744
d63878346099 maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents: 17572
diff changeset
1 ## Copyright (C) 1993-2013 John W. Eaton
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
2 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
3 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
4 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
6 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
8 ## your option) any later version.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
9 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
10 ## 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
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2311
diff changeset
13 ## General Public License for more details.
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 ## 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: 6895
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
17 ## <http://www.gnu.org/licenses/>.
245
16a24e76d6e0 [project @ 1993-12-03 02:00:15 by jwe]
jwe
parents: 4
diff changeset
18
3368
a4cd1e9d9962 [project @ 1999-11-20 17:22:48 by jwe]
jwe
parents: 3063
diff changeset
19 ## -*- texinfo -*-
10730
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
20 ## @deftypefn {Function File} {} loglog (@var{y})
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
21 ## @deftypefnx {Function File} {} loglog (@var{x}, @var{y})
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
22 ## @deftypefnx {Function File} {} loglog (@var{x}, @var{y}, @var{prop}, @var{value}, @dots{})
10730
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
23 ## @deftypefnx {Function File} {} loglog (@var{x}, @var{y}, @var{fmt})
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
24 ## @deftypefnx {Function File} {} loglog (@var{hax}, @dots{})
10730
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
25 ## @deftypefnx {Function File} {@var{h} =} loglog (@dots{})
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
26 ## Produce a 2-D plot using logarithmic scales for both axes.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
27 ##
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
28 ## See the documentation of @code{plot} for a description of the arguments
6895
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6448
diff changeset
29 ## that @code{loglog} will accept.
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 13141
diff changeset
30 ##
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
31 ## If the first argument @var{hax} is an axes handle, then plot into this axis,
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
32 ## rather than the current axes returned by @code{gca}.
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 17047
diff changeset
33 ##
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 13141
diff changeset
34 ## The optional return value @var{h} is a graphics handle to the created plot.
6895
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6448
diff changeset
35 ## @seealso{plot, semilogx, semilogy}
3368
a4cd1e9d9962 [project @ 1999-11-20 17:22:48 by jwe]
jwe
parents: 3063
diff changeset
36 ## @end deftypefn
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
37
2314
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
38 ## Author: jwe
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
39
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
40 function h = loglog (varargin)
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
41
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
42 [hax, varargin, nargs] = __plt_get_axis_arg__ ("loglog", varargin{:});
10730
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
43
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
44 if (nargs < 1)
14846
460a3c6d8bf1 maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents: 14363
diff changeset
45 print_usage ();
10730
390d93e20531 Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents: 10511
diff changeset
46 endif
7216
5389a52df87b [project @ 2007-11-29 19:07:29 by jwe]
jwe
parents: 7207
diff changeset
47
17211
87ba70043bfc Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents: 17190
diff changeset
48 oldfig = [];
17301
68bcac3c043a Correct inversion accidentally introduced in cset 87ba70043bfc.
Rik <rik@octave.org>
parents: 17211
diff changeset
49 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
50 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
51 endif
7207
71c03c7239fb [project @ 2007-11-28 02:19:25 by jwe]
jwe
parents: 7017
diff changeset
52 unwind_protect
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
53 hax = newplot (hax);
3063
4287b8c06fbf [project @ 1997-06-26 02:36:05 by jwe]
jwe
parents: 2847
diff changeset
54
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
55 set (hax, "xscale", "log", "yscale", "log");
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
56 if (! ishold (hax))
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
57 set (hax, "xminortick", "on", "yminortick", "on");
10511
153e6226a669 loglog.m: Minor ticks on by default for loglog plots.
Ben Abbott <bpabbott@mac.com>
parents: 7216
diff changeset
58 endif
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
59
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
60 htmp = __plt__ ("loglog", hax, varargin{:});
6302
a5cd8b77e892 [project @ 2007-02-13 08:08:33 by jwe]
jwe
parents: 6257
diff changeset
61
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
62 unwind_protect_cleanup
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
63 if (! isempty (oldfig))
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
64 set (0, "currentfigure", oldfig);
7207
71c03c7239fb [project @ 2007-11-28 02:19:25 by jwe]
jwe
parents: 7017
diff changeset
65 endif
71c03c7239fb [project @ 2007-11-28 02:19:25 by jwe]
jwe
parents: 7017
diff changeset
66 end_unwind_protect
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
67
17047
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
68 if (nargout > 0)
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
69 h = htmp;
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
70 endif
4f5c70792bd6 loglog.m: Overhaul function to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents: 14846
diff changeset
71
4
b4df021f796c [project @ 1993-08-08 01:26:08 by jwe]
jwe
parents:
diff changeset
72 endfunction
10511
153e6226a669 loglog.m: Minor ticks on by default for loglog plots.
Ben Abbott <bpabbott@mac.com>
parents: 7216
diff changeset
73
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
74
13090
7f127e079a7c codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
75 %!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
76 %! clf;
13090
7f127e079a7c codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
77 %! t = 1:0.01:10;
7f127e079a7c codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
78 %! x = sort ((t .* (1 + rand (size (t)))) .^ 2);
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14245
diff changeset
79 %! y = (t .* (1 + rand (size (t)))) .^ 2;
13090
7f127e079a7c codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
80 %! loglog (x, y);
17190
df4c4b7708a4 Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents: 17122
diff changeset
81 %! title ({'loglog() plot', 'Both axes are logarithmic'});
13090
7f127e079a7c codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
82
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
83 %!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
84 %! clf;
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
85 %! a = logspace (-5, 1, 10);
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
86 %! b =-logspace (-5, 1, 10);
13141
e81ddf9cacd5 maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 13124
diff changeset
87 %!
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
88 %! subplot (1,2,1);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
89 %! loglog (a, b);
14245
4506eade9f04 Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents: 14237
diff changeset
90 %! xlabel ('loglog (a, b)');
13141
e81ddf9cacd5 maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 13124
diff changeset
91 %!
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
92 %! subplot (1,2,2);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
93 %! loglog (a, abs (b));
14245
4506eade9f04 Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents: 14237
diff changeset
94 %! set (gca, 'ydir', 'reverse');
4506eade9f04 Use Matlab coding conventions for demos in plot/ directory.
Rik <octave@nomad.inbox5.com>
parents: 14237
diff changeset
95 %! xlabel ('loglog (a, abs (b))');
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
96
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
97 %!test
13124
2ea1658ad049 Don't use explicit figure number for tests to avoid interference with any figures opened by user.
Kai Habel <kai.habel@gmx.de>
parents: 13104
diff changeset
98 %! hf = figure ("visible", "off");
13141
e81ddf9cacd5 maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 13124
diff changeset
99 %! unwind_protect
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
100 %! a = logspace (-5, 1, 10);
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
101 %! b = logspace (-5, 1, 10);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
102 %! loglog (a, b);
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
103 %! assert (get (gca, "yscale"), "log");
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
104 %! assert (get (gca, "xscale"), "log");
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
105 %! unwind_protect_cleanup
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
106 %! close (hf);
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
107 %! end_unwind_protect
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
108
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
109 %!test
13124
2ea1658ad049 Don't use explicit figure number for tests to avoid interference with any figures opened by user.
Kai Habel <kai.habel@gmx.de>
parents: 13104
diff changeset
110 %! hf = figure ("visible", "off");
13141
e81ddf9cacd5 maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 13124
diff changeset
111 %! unwind_protect
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
112 %! a = logspace (-5, 1, 10);
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
113 %! b =-logspace (-5, 1, 10);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
114 %! loglog (a, b);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
115 %! axis tight;
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
116 %! assert (all (get (gca, "ytick") < 0));
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
117 %! unwind_protect_cleanup
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
118 %! close (hf);
13103
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
119 %! end_unwind_protect
2e2738837a24 Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13090
diff changeset
120