Mercurial > hg > octave-lyh
annotate scripts/plot/newplot.m @ 17023:13a12d01aca5
Avoid tight limits having a span of zero.
script/plot/axis.m: For the "tight" option, avoid a span of zero.
(Bug # 39429)
author | bpabbott |
---|---|
date | Sat, 20 Jul 2013 10:56:24 -0400 |
parents | c90c9623b20f |
children | 08dd9458684a |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13204
diff
changeset
|
1 ## Copyright (C) 2005-2012 John W. Eaton |
6257 | 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. | |
6257 | 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/>. | |
6257 | 18 |
19 ## -*- texinfo -*- | |
16076
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
20 ## @deftypefn {Function File} {} newplot () |
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{h} =} newplot () |
9672
43a07df0ed4c
document graphics structures
Michael D. Godfrey <godfrey@isl.stanford.edu>
parents:
8920
diff
changeset
|
22 ## Prepare graphics engine to produce a new plot. This function is |
43a07df0ed4c
document graphics structures
Michael D. Godfrey <godfrey@isl.stanford.edu>
parents:
8920
diff
changeset
|
23 ## called at the beginning of all high-level plotting functions. |
43a07df0ed4c
document graphics structures
Michael D. Godfrey <godfrey@isl.stanford.edu>
parents:
8920
diff
changeset
|
24 ## It is not normally required in user programs. |
16076
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
25 ## |
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
26 ## The optional return value @var{h} is a graphics handle to the created |
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
27 ## axes (not figure). |
6257 | 28 ## @end deftypefn |
29 | |
16076
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
30 function h = newplot () |
6257 | 31 |
32 if (nargin == 0) | |
33 cf = gcf (); | |
34 fnp = get (cf, "nextplot"); | |
35 switch (fnp) | |
6314 | 36 ## FIXME -- probably we should do more than validate the nextplot |
37 ## property value... | |
6257 | 38 case "new" |
39 case "add" | |
40 case "replacechildren" | |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
41 delete (get (cf, "children")); |
6257 | 42 case "replace" |
43 otherwise | |
10549 | 44 error ("newplot: unrecognized nextplot property for current figure"); |
6257 | 45 endswitch |
46 ca = gca (); | |
47 anp = get (ca, "nextplot"); | |
10770
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
48 if (strcmp (get (ca, "__hold_all__"), "off")) |
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
49 __next_line_color__ (true); |
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
50 __next_line_style__ (true); |
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
51 else |
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
52 __next_line_color__ (false); |
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
53 __next_line_style__ (false); |
84c35a483d1f
Support 'hold all' (Feature Request #30336)
David Bateman <dbateman@free.fr>
parents:
10549
diff
changeset
|
54 endif |
6257 | 55 switch (anp) |
10510
62ebba45054e
Respect the nextplot property value of 'new' for axes and 'replacechildren' for axes and figures.
Ben Abbott <bpabbott@mac.com>
parents:
10135
diff
changeset
|
56 case "new" |
6257 | 57 case "add" |
58 case "replacechildren" | |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
59 delete (get (ca, "children")); |
6257 | 60 case "replace" |
10549 | 61 __go_axes_init__ (ca, "replace"); |
62 __request_drawnow__ (); | |
6257 | 63 otherwise |
10549 | 64 error ("newplot: unrecognized nextplot property for current axes"); |
6257 | 65 endswitch |
16076
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
66 if (nargout > 0) |
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
67 h = ca; |
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
68 endif |
6257 | 69 else |
70 print_usage (); | |
71 endif | |
8252
b12a2975bf7e
newplot.m: delete stray debugging code
John W. Eaton <jwe@octave.org>
parents:
8228
diff
changeset
|
72 |
6257 | 73 endfunction |
13204 | 74 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
75 |
13204 | 76 %!test |
77 %! hf = figure ("visible", "off"); | |
78 %! unwind_protect | |
79 %! p = plot ([0, 1]); | |
16076
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
80 %! ha = newplot (); |
c90c9623b20f
newplot.m: Return handle to created axes for Matlab compatibility (Bug #38146)
Rik <rik@octave.org>
parents:
14363
diff
changeset
|
81 %! assert (ha, gca); |
13204 | 82 %! assert (isempty (get (gca, "children"))); |
83 %! unwind_protect_cleanup | |
84 %! close (hf); | |
85 %! end_unwind_protect | |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
86 |