Mercurial > hg > octave-lyh
annotate scripts/plot/loglog.m @ 13924:3b654a0753b1
Implement waitfor, uiwait and uiresume.
* liboctave/cmd-edit.h (command_editor::run_event_hooks): New static method.
* liboctave/cmd-edit.cc (command_editor::run_event_hooks): Implement it.
* src/graphics.h.in (listener_mode::PREDELETE): New enum value.
* src/graphics.cc (<ctime>, "cutils.h"): New included headers.
(base_properties::has_dynamic_properties): Look also into all_props.
(gh_manager::do_execute_callback): Allow any type of function to be specified,
not only function handles.
(waitfor_results): New utility static variable.
(compare_property_values, cleanup_waitfor_id, do_cleanup_waitfor_listener,
cleanup_waitfor_postset_listener, cleanup_waitfor_predelete_listener,
waitfor_listener, waitfor_del_listener): New utility static functions.
(Fwaitfor): New function.
* plot/uiwait.m: New function.
* plot/uiresume.m: Likewise.
* plot/modules.mk (plot_FCN_FILES): Add them to the list.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Wed, 23 Nov 2011 08:59:25 +0000 |
parents | e81ddf9cacd5 |
children | 5f0bb45e615c |
rev | line source |
---|---|
11523 | 1 ## Copyright (C) 1993-2011 John W. Eaton |
2313 | 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. | |
2313 | 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/>. | |
245 | 18 |
3368 | 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}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
22 ## @deftypefnx {Function File} {} loglog (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) |
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}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
24 ## @deftypefnx {Function File} {} loglog (@var{h}, @dots{}) |
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{}) |
6895 | 26 ## Produce a two-dimensional plot using log scales for both axes. See |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
27 ## the documentation of @code{plot} for a description of the arguments |
6895 | 28 ## that @code{loglog} will accept. |
29 ## @seealso{plot, semilogx, semilogy} | |
3368 | 30 ## @end deftypefn |
4 | 31 |
2314 | 32 ## Author: jwe |
33 | |
6302 | 34 function retval = loglog (varargin) |
4 | 35 |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
36 [h, varargin, nargs] = __plt_get_axis_arg__ ("loglog", varargin{:}); |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
37 |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
38 if (nargs < 1) |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
39 print_usage(); |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10511
diff
changeset
|
40 endif |
7216 | 41 |
7207 | 42 oldh = gca (); |
43 unwind_protect | |
44 axes (h); | |
45 newplot (); | |
3063 | 46 |
7207 | 47 set (h, "xscale", "log", "yscale", "log"); |
10511
153e6226a669
loglog.m: Minor ticks on by default for loglog plots.
Ben Abbott <bpabbott@mac.com>
parents:
7216
diff
changeset
|
48 if (any( strcmp (get (gca, "nextplot"), {"new", "replace"}))) |
153e6226a669
loglog.m: Minor ticks on by default for loglog plots.
Ben Abbott <bpabbott@mac.com>
parents:
7216
diff
changeset
|
49 set (h, "xminortick", "on", "yminortick", "on"); |
153e6226a669
loglog.m: Minor ticks on by default for loglog plots.
Ben Abbott <bpabbott@mac.com>
parents:
7216
diff
changeset
|
50 endif |
4 | 51 |
7207 | 52 tmp = __plt__ ("loglog", h, varargin{:}); |
6302 | 53 |
7207 | 54 if (nargout > 0) |
55 retval = tmp; | |
56 endif | |
57 unwind_protect_cleanup | |
58 axes (oldh); | |
59 end_unwind_protect | |
4 | 60 |
61 endfunction | |
10511
153e6226a669
loglog.m: Minor ticks on by default for loglog plots.
Ben Abbott <bpabbott@mac.com>
parents:
7216
diff
changeset
|
62 |
13090
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
63 %!demo |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
64 %! clf (); |
13090
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
65 %! t = 1:0.01:10; |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
66 %! x = sort ((t .* (1 + rand (size (t)))) .^ 2); |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
67 %! y = ((t .* (1 + rand (size (t)))) .^ 2); |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
68 %! loglog (x, y); |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
69 |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
70 %!demo |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
71 %! clf (); |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
72 %! 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
|
73 %! 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
|
74 %! |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
75 %! subplot (1, 2, 1) |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
76 %! loglog (a, b) |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
77 %! 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
|
78 %! |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
79 %! subplot (1, 2, 2) |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
80 %! loglog (a, abs (b)) |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
81 %! set (gca, 'ydir', 'reverse') |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
82 %! xlabel ('loglog (a, abs (b))') |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
83 |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
84 %!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
|
85 %! 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
|
86 %! unwind_protect |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
87 %! 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
|
88 %! b = logspace (-5, 1, 10); |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
89 %! loglog (a, b) |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
90 %! 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
|
91 %! 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
|
92 %! unwind_protect_cleanup |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
93 %! close (hf); |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
94 %! end_unwind_protect |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
95 |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
96 %!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
|
97 %! 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
|
98 %! unwind_protect |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
99 %! 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
|
100 %! b =-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 %! loglog (a, b) |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
102 %! axis tight |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
103 %! 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
|
104 %! unwind_protect_cleanup |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
105 %! close (hf); |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
106 %! end_unwind_protect |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
107 |