Mercurial > hg > octave-nkf
annotate scripts/plot/draw/polar.m @ 20737:2d9ec16fa960
Print error, rather than aborting, if mex function mxIsFromGlobalWS is used (bug #46070).
* mex.cc (mxIsFromGlobalWS): Call mexErrMsgTxt rather than abort() in function.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 29 Sep 2015 12:00:11 -0700 |
parents | 421e3ebfca8d |
children |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19794
diff
changeset
|
1 ## Copyright (C) 1993-2015 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:
10549
diff
changeset
|
20 ## @deftypefn {Function File} {} polar (@var{theta}, @var{rho}) |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
21 ## @deftypefnx {Function File} {} polar (@var{theta}, @var{rho}, @var{fmt}) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
22 ## @deftypefnx {Function File} {} polar (@var{cplx}) |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
23 ## @deftypefnx {Function File} {} polar (@var{cplx}, @var{fmt}) |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
24 ## @deftypefnx {Function File} {} polar (@var{hax}, @dots{}) |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
25 ## @deftypefnx {Function File} {@var{h} =} polar (@dots{}) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
26 ## Create a 2-D plot from polar coordinates @var{theta} and @var{rho}. |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
27 ## |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
28 ## If a single complex input @var{cplx} is given then the real part is used |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
29 ## for @var{theta} and the imaginary part is used for @var{rho}. |
2311 | 30 ## |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
31 ## The optional argument @var{fmt} specifies the line format in the same way |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
32 ## as @code{plot}. |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
33 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17072
diff
changeset
|
34 ## 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:
17072
diff
changeset
|
35 ## rather than the current axes returned by @code{gca}. |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
12789
diff
changeset
|
36 ## |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
12789
diff
changeset
|
37 ## The optional return value @var{h} is a graphics handle to the created plot. |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
12789
diff
changeset
|
38 ## |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
39 ## Implementation Note: The polar axis is drawn using line and text objects |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
40 ## encapsulated in an hggroup. The hggroup properties are linked to the |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
41 ## original axes object such that altering an appearance property, for example |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
42 ## @code{fontname}, will update the polar axis. Two new properties are |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
43 ## added to the original axes--@code{rtick}, @code{ttick}--which replace |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
44 ## @code{xtick}, @code{ytick}. The first is a list of tick locations in the |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
45 ## radial (rho) direction; The second is a list of tick locations in the |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
46 ## angular (theta) direction specified in degrees, i.e., in the range 0--359. |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
47 ## @seealso{rose, compass, plot} |
3368 | 48 ## @end deftypefn |
4 | 49 |
2314 | 50 ## Author: jwe |
51 | |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
52 function h = polar (varargin) |
4 | 53 |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
54 [hax, varargin, nargs] = __plt_get_axis_arg__ ("polar", varargin{:}); |
7216 | 55 |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
56 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:
14237
diff
changeset
|
57 print_usage (); |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
58 endif |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
59 |
17211
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
60 oldfig = []; |
17301
68bcac3c043a
Correct inversion accidentally introduced in cset 87ba70043bfc.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
61 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
|
62 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
|
63 endif |
7207 | 64 unwind_protect |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
65 hax = newplot (hax); |
3063 | 66 |
7207 | 67 if (nargs == 3) |
68 if (! ischar (varargin{3})) | |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
69 error ("polar: FMT argument must be a string"); |
7207 | 70 endif |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
71 htmp = __plr2__ (hax, varargin{:}); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
72 maxr = max (varargin{2}(:)); |
7321 | 73 elseif (nargs == 2) |
7207 | 74 if (ischar (varargin{2})) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
75 htmp = __plr1__ (hax, varargin{:}); |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14846
diff
changeset
|
76 if (iscomplex (varargin{1})) |
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14846
diff
changeset
|
77 maxr = max (imag (varargin{1})(:)); |
10549 | 78 else |
79 maxr = max (varargin{1}(:)); | |
80 endif | |
7207 | 81 else |
10549 | 82 fmt = ""; |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
83 htmp = __plr2__ (hax, varargin{:}, fmt); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
84 maxr = max (varargin{2}(:)); |
7207 | 85 endif |
7321 | 86 elseif (nargs == 1) |
7207 | 87 fmt = ""; |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
88 htmp = __plr1__ (hax, varargin{:}, fmt); |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14846
diff
changeset
|
89 if (iscomplex (varargin{1})) |
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14846
diff
changeset
|
90 maxr = max (imag (varargin{1})(:)); |
7321 | 91 else |
10549 | 92 maxr = max (varargin{1}(:)); |
7321 | 93 endif |
7207 | 94 else |
95 print_usage (); | |
934 | 96 endif |
7207 | 97 |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
98 if (! ishold (hax)) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
99 hg = hggroup (hax, "tag", "polar_grid", "handlevisibility", "off"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
100 |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
101 set (hax, "visible", "off", "plotboxaspectratio", [1, 1, 1], |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
102 "zlim", [-1 1]); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
103 |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
104 if (! isprop (hax, "rtick")) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
105 addproperty ("rtick", hax, "data"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
106 endif |
7321 | 107 |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
108 set (hax, "rtick", __calc_rtick__ (hax, maxr)); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
109 |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
110 ## add t(heta)tick |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
111 if (! isprop (hax, "ttick")) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
112 addproperty ("ttick", hax, "data"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
113 endif |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
114 |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
115 ## theta(angular) ticks in degrees |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
116 set (hax, "ttick", 0:30:330); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
117 |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
118 __update_polar_grid__ (hax, [], hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
119 |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
120 set (hg, "deletefcn", {@resetaxis, hax}); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
121 |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
122 addlistener (hax, "rtick", {@__update_polar_grid__, hg}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
123 addlistener (hax, "ttick", {@__update_polar_grid__, hg}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
124 addlistener (hax, "color", {@__update_patch__, hg}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
125 addlistener (hax, "fontangle", {@__update_text__, hg, "fontangle"}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
126 addlistener (hax, "fontname", {@__update_text__, hg, "fontname"}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
127 addlistener (hax, "fontsize", {@__update_text__, hg, "fontsize"}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
128 addlistener (hax, "fontunits", {@__update_text__, hg, "fontunits"}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
129 addlistener (hax, "fontweight", {@__update_text__, hg, "fontweight"}); |
20496
42b7d7758c4a
Remove axes "interpreter" property (bug #45388)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
130 addlistener (hax, "ticklabelinterpreter", |
42b7d7758c4a
Remove axes "interpreter" property (bug #45388)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
131 {@__update_text__, hg, "interpreter"}); |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
132 addlistener (hax, "layer", {@__update_layer__, hg}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
133 addlistener (hax, "gridlinestyle",{@__update_lines__,hg,"gridlinestyle"}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
134 addlistener (hax, "linewidth", {@__update_lines__, hg, "linewidth"}); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
135 else |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
136 hg = findall (hax, "tag", "polar_grid"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
137 if (! isempty (hg)) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
138 oldrtick = max (get (hax, "rtick")); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
139 if (maxr > oldrtick) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
140 set (hax, "rtick", __calc_rtick__ (hax, maxr)); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
141 endif |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
142 endif |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
143 endif |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
144 |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
145 unwind_protect_cleanup |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
146 if (! isempty (oldfig)) |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
147 set (0, "currentfigure", oldfig); |
934 | 148 endif |
7207 | 149 end_unwind_protect |
6302 | 150 |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
151 if (nargout > 0) |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
152 h = htmp; |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
153 endif |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
154 |
4 | 155 endfunction |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
156 |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
157 function rtick = __calc_rtick__ (hax, maxr) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
158 ## FIXME: workaround: calculate r(ho)tick from xtick |
20586
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
159 ## It would be better to just calculate the values, |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
160 ## but that code is deep in the C++ for the plot engines. |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
161 savexlim = get (hax, "xlim"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
162 saveylim = get (hax, "ylim"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
163 set (hax, "xlim", [-maxr maxr], "ylim", [-maxr maxr]); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
164 xtick = get (hax, "xtick"); |
20586
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
165 minidx = find (xtick > 0, 1); |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
166 maxidx = find (xtick >= maxr, 1); |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
167 if (! isempty (maxidx)) |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
168 rtick = xtick(minidx:maxidx); |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
169 else |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
170 ## Add one more tick through linear interpolation |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
171 rtick = xtick(minidx:end); |
e2feb806332a
polar.m: Calculate 'rtick' property more accurately (bug #45513).
Rik <rik@octave.org>
parents:
20496
diff
changeset
|
172 rtick(end+1) = xtick(end) + diff (xtick(end-1:end)); |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
173 endif |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
174 set (hax, "xlim", savexlim, "ylim", saveylim); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
175 endfunction |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
176 |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
177 function retval = __plr1__ (h, theta, fmt) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
178 |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
179 theta = theta(:); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
180 if (iscomplex (theta)) |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
181 rho = imag (theta); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
182 theta = real (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
183 else |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
184 rho = theta; |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
185 theta = (1:rows (rho))'; |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
186 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
187 |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
188 retval = __plr2__ (h, theta, rho, fmt); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
189 |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
190 endfunction |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
191 |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
192 function retval = __plr2__ (h, theta, rho, fmt) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
193 |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
194 if (ndims (theta) > 2 || ndims (rho) > 2) |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
195 error ("polar: THETA and RHO must be 2-D objects"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
196 endif |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
197 theta = real (theta); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
198 rho = real (rho); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
199 |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
200 if (isscalar (theta)) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
201 if (isscalar (rho)) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
202 x = rho * cos (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
203 y = rho * sin (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
204 retval = __plt__ ("polar", h, x, y, fmt); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
205 else |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
206 error ("polar: Can't plot constant THETA with varying RHO"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
207 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
208 elseif (isvector (theta)) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
209 if (isvector (rho)) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
210 if (length (theta) != length (rho)) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
211 error ("polar: THETA and RHO vector lengths must match"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
212 endif |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
213 rho = rho(:); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
214 theta = theta(:); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
215 x = rho .* cos (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
216 y = rho .* sin (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
217 retval = __plt__ ("polar", h, x, y, fmt); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
218 elseif (ismatrix (rho)) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
219 theta = theta(:); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
220 t_nr = rows (theta); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
221 [r_nr, r_nc] = size (rho); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
222 if (t_nr != r_nr) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
223 rho = rho'; |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
224 r_nr = r_nc; |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
225 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
226 if (t_nr != r_nr) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
227 error ("polar: THETA vector and RHO matrix sizes must match"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
228 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
229 x = diag (cos (theta)) * rho; |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
230 y = diag (sin (theta)) * rho; |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
231 retval = __plt__ ("polar", h, x, y, fmt); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
232 else |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
233 error ("polar: invalid data for plotting"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
234 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
235 elseif (ismatrix (theta)) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
236 if (isvector (rho)) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
237 rho = rho(:); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
238 r_nr = rows (rho); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
239 [t_nr, t_nc] = size (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
240 if (r_nr != t_nr) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
241 theta = theta'; |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
242 t_nr = t_nc; |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
243 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
244 if (r_nr != t_nr) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
245 error ("polar: THETA matrix and RHO vector sizes must match"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
246 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
247 diag_r = diag (rho); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
248 x = diag_r * cos (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
249 y = diag_r * sin (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
250 retval = __plt__ ("polar", h, x, y, fmt); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
251 elseif (ismatrix (rho)) |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
252 if (! size_equal (rho, theta)) |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
253 error ("polar: THETA and RHO matrix dimensions must match"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
254 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
255 x = rho .* cos (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
256 y = rho .* sin (theta); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
257 retval = __plt__ ("polar", h, x, y, fmt); |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
258 else |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
259 error ("polar: invalid data for plotting"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
260 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
261 else |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
262 error ("polar: invalid data for plotting"); |
9896
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
263 endif |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
264 |
1aeb39118764
convert some plot functions to subfunctions or make some them private
John W. Eaton <jwe@octave.org>
parents:
7321
diff
changeset
|
265 endfunction |
12789
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
266 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
267 ## Callback functions for listeners |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
268 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
269 function __update_text__ (hax, ~, hg, prop) |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
270 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
271 kids = get (hg, "children"); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
272 idx = strcmp (get (kids, "type"), "text"); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
273 set (kids(idx).', prop, get (hax, prop)); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
274 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
275 endfunction |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
276 |
20588
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
277 function __update_lines__ (hax, ~, hg, prop) |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
278 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
279 kids = get (hg, "children"); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
280 idx = strcmp (get (kids, "type"), "line"); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
281 lprop = prop; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
282 if (strcmp (prop, "gridlinestyle")) |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
283 lprop = "linestyle"; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
284 endif |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
285 set (kids(idx).', lprop, get (hax, prop)); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
286 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
287 endfunction |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
288 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
289 function __update_patch__ (hax, ~, hg) |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
290 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
291 kids = get (hg, "children"); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
292 idx = strcmp (get (kids, "type"), "patch"); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
293 set (kids(idx).', "facecolor", get (hax, "color")); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
294 |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
295 endfunction |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
296 |
20588
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
297 function __update_layer__ (hax, ~, hg) |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
298 |
20588
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
299 ## FIXME: This re-implements allchild() because setting the "children" |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
300 ## property needs to preserve all children (titles, xlabels, etc.). |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
301 shh = get (0, "showhiddenhandles"); |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
302 unwind_protect |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
303 set (0, "showhiddenhandles", "on"); |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
304 kids = get (hax, "children"); |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
305 if (strcmp (get (hax, "layer"), "bottom")) |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
306 set (hax, "children", [kids(kids != hg); hg]); |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
307 else |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
308 set (hax, "children", [hg; kids(kids != hg)]); |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
309 endif |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
310 unwind_protect_cleanup |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
311 set (0, "showhiddenhandles", shh); |
56301a6c337a
polar.m: Display plot titles on polar plots (bug #45514).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
312 end_unwind_protect |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
313 endfunction |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
314 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
315 function __update_polar_grid__ (hax, ~, hg) |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
316 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
317 ## Delete existing polar grid |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
318 delete (get (hg, "children")); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
319 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
320 rtick = unique (get (hax, "rtick")(:)'); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
321 rtick = rtick(rtick > 0); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
322 if (isempty (rtick)) |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
323 rtick = [0.5 1]; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
324 endif |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
325 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
326 ttick = unique (get (hax, "ttick")(:)'); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
327 ttick = ttick(ttick >= 0); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
328 if (isempty (ttick)) |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
329 ttick = 0:30:330; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
330 endif |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
331 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
332 lprops = {"linestyle", get(hax, "gridlinestyle"), ... |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
333 "linewidth", get(hax, "linewidth")}; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
334 ## "fontunits" should be first because it affects "fontsize" property. |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
335 tprops(1:2:12) = {"fontunits", "fontangle", "fontname", "fontsize", ... |
20496
42b7d7758c4a
Remove axes "interpreter" property (bug #45388)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
336 "fontweight", "ticklabelinterpreter"}; |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
337 tprops(2:2:12) = get (hax, tprops(1:2:12)); |
20496
42b7d7758c4a
Remove axes "interpreter" property (bug #45388)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
338 tprops(1:2:12) = strrep (tprops(1:2:12), "ticklabelinterpreter", |
42b7d7758c4a
Remove axes "interpreter" property (bug #45388)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
339 "interpreter"); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
340 |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
341 ## The number of points used for a circle |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
342 circle_points = 50; |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
343 t = linspace (0, 2*pi, circle_points)'; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
344 x = kron (cos (t), rtick); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
345 y = kron (sin (t), rtick); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
346 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
347 ## Draw colored disk under axes at Z-depth = -1 |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
348 patch (x(:,end), y(:,end), -ones (circle_points, 1), |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
349 get (hax, "color"), "parent", hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
350 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
351 ## Plot dotted circles |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
352 line (x(:,1:end-1), y(:,1:end-1), lprops{:}, "parent", hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
353 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
354 ## Outer circle is drawn solid |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
355 line (x(:,end), y(:,end), lprops{:}, "linestyle", "-", "parent", hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
356 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
357 ## Add radial labels |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
358 [x, y] = pol2cart (0.42 * pi, rtick); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
359 text (x, y, num2cell (rtick), "verticalalignment", "bottom", tprops{:}, |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
360 "parent", hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
361 |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
362 ## add radial lines |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
363 s = rtick(end) * sin (ttick * pi / 180); |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
364 c = rtick(end) * cos (ttick * pi / 180); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
365 x = [zeros(1, numel (ttick)); c]; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
366 y = [zeros(1, numel (ttick)); s]; |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
367 line (x, y, "linestyle", ":", lprops{:}, "parent", hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
368 |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
369 ## add angular labels |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
370 tticklabel = num2cell (ttick); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
371 ## FIXME: This tm factor does not work as fontsize increases |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
372 tm = 1.08; |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
373 text (tm * c, tm * s, tticklabel, "horizontalalignment", "center", |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
374 tprops{:}, "parent", hg); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
375 |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
376 lim = 1.1 * rtick(end); |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
377 set (hax, "xlim", [-lim, lim], "ylim", [-lim, lim]); |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
378 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
379 ## Put polar grid behind or ahead of plot |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
380 __update_layer__ (hax, [], hg); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
381 |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
382 endfunction |
12789
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
383 |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
384 function resetaxis (~, ~, hax) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
385 if (isaxes (hax)) |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
386 dellistener (hax, "rtick"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
387 dellistener (hax, "ttick"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
388 dellistener (hax, "color"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
389 dellistener (hax, "fontangle"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
390 dellistener (hax, "fontname"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
391 dellistener (hax, "fontsize"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
392 dellistener (hax, "fontunits"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
393 dellistener (hax, "fontweight"); |
20496
42b7d7758c4a
Remove axes "interpreter" property (bug #45388)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
394 dellistener (hax, "ticklabelinterpreter"); |
19077
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
395 dellistener (hax, "layer"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
396 dellistener (hax, "gridlinestyle"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
397 dellistener (hax, "linewidth"); |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
398 endif |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
399 endfunction |
cff49c82f722
polar.m: Fix scaling of polar plot (bug #39495).
Stefan Mahr <dac922@gmx.de>
parents:
19066
diff
changeset
|
400 |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
401 |
12789
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
402 %!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
|
403 %! clf; |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
404 %! theta = linspace (0,2*pi,1000); |
12789
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
405 %! rho = sin (7*theta); |
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
406 %! polar (theta, rho); |
17190
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
407 %! title ('polar() plot'); |
12789
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
408 |
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
409 %!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
|
410 %! clf; |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
411 %! theta = linspace (0,2*pi,1000); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
412 %! cplx = theta + i*sin (7*theta); |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
413 %! polar (cplx, 'g'); |
17190
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
414 %! title ('polar() plot of complex data'); |
17072
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
415 |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
416 %!demo |
22fa8c77b92d
polar.m, rose.m: Overhaul to use new __plt_get_axis_arg__.
Rik <rik@octave.org>
parents:
16814
diff
changeset
|
417 %! clf; |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
418 %! theta = linspace (0,2*pi,1000); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
419 %! rho = sin (2*theta).*cos (2*theta); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
420 %! polar (theta, rho, '--r'); |
19066
cafffc1b70b1
update plot demo blocks for compare_plot_demos
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18916
diff
changeset
|
421 %! set (gca, 'rtick', 0.1:0.1:0.6, 'ttick', 0:20:340); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
422 %! title ('polar() plot with finer grid'); |
12789
482cc053281b
codesprint: Add 2 demos for polar.m
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
423 |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
424 %!demo |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
425 %! clf; |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
426 %! theta = linspace (0,2*pi,1000); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
427 %! rho = sin (2*theta).*cos (2*theta); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
428 %! polar (theta, rho, '--b'); |
19066
cafffc1b70b1
update plot demo blocks for compare_plot_demos
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18916
diff
changeset
|
429 %! set (gca, 'fontsize', 12, 'linewidth', 2, 'color', [0.8 0.8 0.8]); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
430 %! title ('polar() plot with modified axis appearance'); |
18910
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
431 |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
432 %!demo |
b5b73959907f
polar.m: add circular theta/rho axes (bug 39495).
Andreas Weber <andy.weber.aw@gmail.com>
parents:
17744
diff
changeset
|
433 %! clf; |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
434 %! theta = linspace (0,8*pi,1000); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
435 %! rho = sin (5/4*theta); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
436 %! polar (theta, rho); |
19066
cafffc1b70b1
update plot demo blocks for compare_plot_demos
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18916
diff
changeset
|
437 %! set (gca, 'rtick', 0.2:0.2:1); |
18916
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
438 %! title ('polar() plot'); |
56bff71de2ca
polar.m: Link polar grid with axes properties (bug #39495).
Rik <rik@octave.org>
parents:
18910
diff
changeset
|
439 |