Mercurial > hg > octave-lyh
annotate scripts/plot/semilogy.m @ 14014:907d03def9d5
explicitly close figures in clean_up_and_exit instead of using an atexit function
* graphics.cc (Fdrawnow): Don't register __go_close_all__ as an atexit
function.
* __go_close_all__.m: Delete.
* plot/module.mk (plot_FCN_FILES): Remove __go_close_all__.m from the
list.
* graphics.cc (gh_manager::create_instance): Do register cleanup
function.
* graphics.cc (delete_graphics_objects, delete_graphics_object,
close_figure, force_close_figure): New functions.
(F__go_delete__): Call delete_graphics_objects to do the work.
* graphics.h, graphics.cc (gh_manager::close_all_figures,
gh_manager::do_close_all_figures): New functions.
* graphics.h.in, graphics.cc (close_all_figures): New function.
* toplev.cc (clean_up_and_exit): Call close_all_figures.
* graphics.h.in (uitoggletool::~uitoggletool, uipushtool::~uipushtool,
uitoolbar::~uitoolbar, uipanel::~uipanel, uicontrol::~uicontrol,
uicontextmenu::~uicontextmenu, uimenu::~uimenu, hggroup::~hggroup,
surface::~surface, image::~image, text::~text, line::~line,
axes::~axes, figure::~figure, root_figure::~root_figure):
Don't delete children.
* toplev.cc (SAFE_CALL, IGNORE_INTERRUPT): Rename to OCTAVE_SAFE_CALL
and OCTAVE_IGNORE_INTERRUPT and move to toplev.h. Temporarily set
Vdebug_on_error and Vdebug_on_warning. Reset error_state to zero.
Change all callers.
* graphics.h.in (base_graphics_toolkit::close): New virtual function.
(graphics_toolkit::close, graphics_toolkit::close_all_toolkits):
New functions.
* graphics.cc (gnuplot_toolkit::close): New function.
):
* __init_fltk__.cc (F__init_fltk__): Don't register __remove_fltk__ as
an atexit function.
(F__remove_fltk__): Move to fltk_toolkit::close.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 08 Dec 2011 06:28:18 -0500 |
parents | 5f0bb45e615c |
children | 22c50cbad2ce |
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:
10687
diff
changeset
|
20 ## @deftypefn {Function File} {} semilogy (@var{y}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
21 ## @deftypefnx {Function File} {} semilogy (@var{x}, @var{y}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
22 ## @deftypefnx {Function File} {} semilogy (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
23 ## @deftypefnx {Function File} {} semilogy (@var{x}, @var{y}, @var{fmt}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
24 ## @deftypefnx {Function File} {} semilogy (@var{h}, @dots{}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
25 ## @deftypefnx {Function File} {@var{h} =} semilogy (@dots{}) |
10687
a8ce6bdecce5
Improve documentation strings.
Rik <octave@nomad.inbox5.com>
parents:
10647
diff
changeset
|
26 ## Produce a two-dimensional plot using a logarithmic scale for the @var{y} |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
27 ## axis. See the documentation of @code{plot} for a description of the |
6895 | 28 ## arguments that @code{semilogy} will accept. |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
29 ## |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
30 ## The optional return value @var{h} is a graphics handle to the created plot. |
6895 | 31 ## @seealso{plot, semilogx, loglog} |
3368 | 32 ## @end deftypefn |
4 | 33 |
2314 | 34 ## Author: jwe |
35 | |
6302 | 36 function retval = semilogy (varargin) |
4 | 37 |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
38 [h, varargin, nargs] = __plt_get_axis_arg__ ("semilogy", varargin{:}); |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
39 |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
40 if (nargs < 1) |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
41 print_usage(); |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
42 endif |
7216 | 43 |
7207 | 44 oldh = gca (); |
45 unwind_protect | |
46 axes (h); | |
47 newplot (); | |
3063 | 48 |
7207 | 49 set (h, "yscale", "log"); |
10647
5c6b73a844e4
Plot minor ticks for semilog plots
Rik <octave@nomad.inbox5.com>
parents:
7216
diff
changeset
|
50 if (any( strcmp (get (gca, "nextplot"), {"new", "replace"}))) |
5c6b73a844e4
Plot minor ticks for semilog plots
Rik <octave@nomad.inbox5.com>
parents:
7216
diff
changeset
|
51 set (h, "yminortick", "on"); |
5c6b73a844e4
Plot minor ticks for semilog plots
Rik <octave@nomad.inbox5.com>
parents:
7216
diff
changeset
|
52 endif |
4 | 53 |
7207 | 54 tmp = __plt__ ("semilogy", h, varargin{:}); |
6302 | 55 |
7207 | 56 if (nargout > 0) |
57 retval = tmp; | |
58 endif | |
59 | |
60 unwind_protect_cleanup | |
61 axes (oldh); | |
62 end_unwind_protect | |
4 | 63 |
64 endfunction | |
13090
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
65 |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
66 %!demo |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
67 %! x = 1:0.01:10; |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
68 %! y = (x .* (1 + rand (size (x)))) .^ 2; |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
69 %! semilogy (x, y); |
7f127e079a7c
codesprint: demos for semilogx, semilogy, and loglog
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
70 |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
71 %!demo |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
72 %! clf (); |
13783
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
73 %! x = logspace (-5, 1, 10); |
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
74 %! y = logspace (-5, 1, 10); |
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
75 %! |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
76 %! subplot (2, 1, 1); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
77 %! semilogy (x, y); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
78 %! ylabel ("semilogy (x, y)"); |
13141
e81ddf9cacd5
maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
13124
diff
changeset
|
79 %! |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
80 %! subplot (2, 1, 2); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
81 %! semilogy (x, -y); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
82 %! ylabel ("semilogy (x, -y)"); |
13783
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
83 |
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
84 %!demo |
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
85 %! clf (); |
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
86 %! x = logspace (-5, 1, 10); |
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
87 %! y = 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
|
88 %! |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
89 %! subplot (2, 1, 1); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
90 %! semilogy (x, y); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
91 %! set (gca, "ydir", "reverse", "activepositionproperty", "outerposition"); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
92 %! ylabel ({"semilogy (x, y)", "ydir = reversed"}); |
13783
d67c8bf52e20
Minor improvements to semilogx and semilogy demos.
Ben Abbott <bpabbott@mac.com>
parents:
13141
diff
changeset
|
93 %! |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
94 %! subplot (2, 1, 2); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
95 %! semilogy (x, -y); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
96 %! set (gca, "ydir", "reverse", "activepositionproperty", "outerposition"); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
97 %! ylabel ({"semilogy (x, -y)", "ydir = reversed"}); |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
98 |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
99 %!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
|
100 %! 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
|
101 %! unwind_protect |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
102 %! 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
|
103 %! b = logspace (-5, 1, 10); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
104 %! semilogy (a, b); |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
105 %! 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
|
106 %! assert (get (gca, "xscale"), "linear"); |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
107 %! unwind_protect_cleanup |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
108 %! close (hf); |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
109 %! end_unwind_protect |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
110 |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
111 %!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
|
112 %! 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
|
113 %! unwind_protect |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
114 %! 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
|
115 %! b =-logspace (-5, 1, 10); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
116 %! semilogy (a, b); |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
117 %! axis tight; |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
118 %! 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
|
119 %! unwind_protect_cleanup |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
13783
diff
changeset
|
120 %! close (hf); |
13103
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
121 %! end_unwind_protect |
2e2738837a24
Add tests and demos for log-scale plotting functions
Carlo de Falco <kingcrimson@tiscali.it>
parents:
13090
diff
changeset
|
122 |