Mercurial > hg > octave-nkf
annotate scripts/plot/draw/plot.m @ 19016:87c3848cf3c0
Fix bug when hggroup used with primitive graphic object (bug #42532).
* image.m, text.m, line.m, patch.m: __plt_get_axis_arg__ will return axis and
hggroup when 'parent' property is used. Select the first returned object
which is the axes, rather than passing both axis and hggroup to further plot
subroutines.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 10 Jun 2014 14:03:09 -0700 |
parents | d63878346099 |
children | 446c46af4b42 |
rev | line source |
---|---|
17744
d63878346099
maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents:
17572
diff
changeset
|
1 ## Copyright (C) 1993-2013 John W. Eaton |
2313 | 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 -*- |
10687
a8ce6bdecce5
Improve documentation strings.
Rik <octave@nomad.inbox5.com>
parents:
10121
diff
changeset
|
20 ## @deftypefn {Function File} {} plot (@var{y}) |
6895 | 21 ## @deftypefnx {Function File} {} plot (@var{x}, @var{y}) |
22 ## @deftypefnx {Function File} {} plot (@var{x}, @var{y}, @var{fmt}) | |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
23 ## @deftypefnx {Function File} {} plot (@dots{}, @var{property}, @var{value}, @dots{}) |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
24 ## @deftypefnx {Function File} {} plot (@var{x1}, @var{y1}, @dots{}, @var{xn}, @var{yn}) |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
25 ## @deftypefnx {Function File} {} plot (@var{hax}, @dots{}) |
10687
a8ce6bdecce5
Improve documentation strings.
Rik <octave@nomad.inbox5.com>
parents:
10121
diff
changeset
|
26 ## @deftypefnx {Function File} {@var{h} =} plot (@dots{}) |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
27 ## Produce 2-D plots. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
28 ## |
11316
b7ff4a51ea88
plot.m: Eliminate present tense in first sentence of docstring.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
29 ## Many different combinations of arguments are possible. The simplest |
b7ff4a51ea88
plot.m: Eliminate present tense in first sentence of docstring.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
30 ## form is |
3426 | 31 ## |
3368 | 32 ## @example |
33 ## plot (@var{y}) | |
34 ## @end example | |
3426 | 35 ## |
3368 | 36 ## @noindent |
37 ## where the argument is taken as the set of @var{y} coordinates and the | |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
38 ## @var{x} coordinates are taken to be the range @code{1:numel (@var{y})}. |
5798 | 39 ## |
3368 | 40 ## If more than one argument is given, they are interpreted as |
3426 | 41 ## |
3368 | 42 ## @example |
6895 | 43 ## plot (@var{y}, @var{property}, @var{value}, @dots{}) |
3368 | 44 ## @end example |
3426 | 45 ## |
3368 | 46 ## @noindent |
6895 | 47 ## or |
6459 | 48 ## |
49 ## @example | |
50 ## plot (@var{x}, @var{y}, @var{property}, @var{value}, @dots{}) | |
51 ## @end example | |
52 ## | |
53 ## @noindent | |
6895 | 54 ## or |
55 ## | |
56 ## @example | |
57 ## plot (@var{x}, @var{y}, @var{fmt}, @dots{}) | |
58 ## @end example | |
59 ## | |
60 ## @noindent | |
61 ## and so on. Any number of argument sets may appear. The @var{x} and | |
62 ## @var{y} values are interpreted as follows: | |
3426 | 63 ## |
3368 | 64 ## @itemize @bullet |
65 ## @item | |
66 ## If a single data argument is supplied, it is taken as the set of @var{y} | |
67 ## coordinates and the @var{x} coordinates are taken to be the indices of | |
68 ## the elements, starting with 1. | |
3426 | 69 ## |
3368 | 70 ## @item |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
71 ## If @var{x} and @var{y} are scalars, a single point is plotted. |
17388
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
72 ## |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
73 ## @item |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
74 ## @code{squeeze()} is applied to arguments with more than two dimensions, |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
75 ## but no more than two singleton dimensions. |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
76 ## |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
77 ## @item |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
78 ## If both arguments are vectors, the elements of @var{y} are plotted versus |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
79 ## the elements of @var{x}. |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
80 ## |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
81 ## @item |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
82 ## If @var{x} is a vector and @var{y} is a matrix, then |
6177 | 83 ## the columns (or rows) of @var{y} are plotted versus @var{x}. |
2311 | 84 ## (using whichever combination matches, with columns tried first.) |
3426 | 85 ## |
3368 | 86 ## @item |
6177 | 87 ## If the @var{x} is a matrix and @var{y} is a vector, |
88 ## @var{y} is plotted versus the columns (or rows) of @var{x}. | |
2311 | 89 ## (using whichever combination matches, with columns tried first.) |
3426 | 90 ## |
3368 | 91 ## @item |
92 ## If both arguments are matrices, the columns of @var{y} are plotted | |
93 ## versus the columns of @var{x}. In this case, both matrices must have | |
94 ## the same number of rows and columns and no attempt is made to transpose | |
95 ## the arguments to make the number of rows match. | |
96 ## @end itemize | |
3426 | 97 ## |
6895 | 98 ## Multiple property-value pairs may be specified, but they must appear |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
99 ## in pairs. These arguments are applied to the line objects drawn by |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
100 ## @code{plot}. Useful properties to modify are @qcode{"linestyle"}, |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
101 ## @qcode{"linewidth"}, @qcode{"color"}, @qcode{"marker"}, |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
102 ## @qcode{"markersize"}, @qcode{"markeredgecolor"}, @qcode{"markerfacecolor"}. |
3426 | 103 ## |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
104 ## The @var{fmt} format argument can also be used to control the plot style. |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
105 ## The format is composed of three parts: linestyle, markerstyle, color. |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
106 ## When a markerstyle is specified, but no linestyle, only the markers are |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
107 ## plotted. Similarly, if a linestyle is specified, but no markerstyle, then |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
108 ## only lines are drawn. If both are specified then lines and markers will |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
109 ## be plotted. If no @var{fmt} and no @var{property}/@var{value} pairs are |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
110 ## given, then the default plot style is solid lines with no markers and the |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
111 ## color determined by the @qcode{"colororder"} property of the current axes. |
3426 | 112 ## |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
113 ## Format arguments: |
3426 | 114 ## |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
115 ## @table @asis |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
116 ## @item linestyle |
3426 | 117 ## |
17204
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
118 ## @multitable @columnfractions 0.06 0.94 |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
119 ## @item @samp{-} @tab Use solid lines (default). |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
120 ## @item @samp{--} @tab Use dashed lines. |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
121 ## @item @samp{:} @tab Use dotted lines. |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
122 ## @item @samp{-.} @tab Use dash-dotted lines. |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
123 ## @end multitable |
3426 | 124 ## |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
125 ## @item markerstyle |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
126 ## |
17204
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
127 ## @multitable @columnfractions 0.06 0.94 |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
128 ## @item @samp{+} @tab crosshair |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
129 ## @item @samp{o} @tab circle |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
130 ## @item @samp{*} @tab star |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
131 ## @item @samp{.} @tab point |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
132 ## @item @samp{x} @tab cross |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
133 ## @item @samp{s} @tab square |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
134 ## @item @samp{d} @tab diamond |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
135 ## @item @samp{^} @tab upward-facing triangle |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
136 ## @item @samp{v} @tab downward-facing triangle |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
137 ## @item @samp{>} @tab right-facing triangle |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
138 ## @item @samp{<} @tab left-facing triangle |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
139 ## @item @samp{p} @tab pentagram |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
140 ## @item @samp{h} @tab hexagram |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
141 ## @end multitable |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
142 ## |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
143 ## @item color |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
144 ## |
17204
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
145 ## @multitable @columnfractions 0.06 0.94 |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
146 ## @item @samp{k} @tab blacK |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
147 ## @item @samp{r} @tab Red |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
148 ## @item @samp{g} @tab Green |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
149 ## @item @samp{b} @tab Blue |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
150 ## @item @samp{m} @tab Magenta |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
151 ## @item @samp{c} @tab Cyan |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
152 ## @item @samp{w} @tab White |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
153 ## @end multitable |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
154 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
155 ## @item @qcode{";key;"} |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
156 ## Here @qcode{"key"} is the label to use for the plot legend. |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
157 ## @end table |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
158 ## |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
159 ## The @var{fmt} argument may also be used to assign legend keys. |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
160 ## To do so, include the desired label between semicolons after the |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17211
diff
changeset
|
161 ## formatting sequence described above, e.g., @qcode{"+b;Key Title;"}. |
17204
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
162 ## Note that the last semicolon is required and Octave will generate |
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
163 ## an error if it is left out. |
3683 | 164 ## |
3368 | 165 ## Here are some plot examples: |
3426 | 166 ## |
3368 | 167 ## @example |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
168 ## plot (x, y, "or", x, y2, x, y3, "m", x, y4, "+") |
3368 | 169 ## @end example |
3426 | 170 ## |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
171 ## This command will plot @code{y} with red circles, @code{y2} with solid |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
172 ## lines, @code{y3} with solid magenta lines, and @code{y4} with points |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
173 ## displayed as @samp{+}. |
3426 | 174 ## |
3368 | 175 ## @example |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
176 ## plot (b, "*", "markersize", 10) |
3368 | 177 ## @end example |
3426 | 178 ## |
6672 | 179 ## This command will plot the data in the variable @code{b}, |
17204
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
180 ## with points displayed as @samp{*} and a marker size of 10. |
3683 | 181 ## |
182 ## @example | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
183 ## @group |
3683 | 184 ## t = 0:0.1:6.3; |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
185 ## plot (t, cos(t), "-;cos(t);", t, sin(t), "-b;sin(t);"); |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
9040
diff
changeset
|
186 ## @end group |
3683 | 187 ## @end example |
188 ## | |
189 ## This will plot the cosine and sine functions and label them accordingly | |
17204
d87179b38bcf
doc: Touch up alignment of @multitables in plot, legend, newplot.
Rik <rik@octave.org>
parents:
17191
diff
changeset
|
190 ## in the legend. |
6820 | 191 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
192 ## 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:
17036
diff
changeset
|
193 ## rather than the current axes returned by @code{gca}. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
194 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
195 ## The optional return value @var{h} is a vector of graphics handles to |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
196 ## the created line objects. |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
197 ## |
17191
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
198 ## To save a plot, in one of several image formats such as PostScript |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
199 ## or PNG, use the @code{print} command. |
85e55da61409
doc: Clarify description of plot format.
Rik <rik@octave.org>
parents:
17190
diff
changeset
|
200 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17036
diff
changeset
|
201 ## @seealso{axis, box, grid, hold, legend, title, xlabel, ylabel, xlim, ylim, ezplot, errorbar, fplot, line, plot3, polar, loglog, semilogx, semilogy, subplot} |
3368 | 202 ## @end deftypefn |
4 | 203 |
2314 | 204 ## Author: jwe |
205 | |
17036
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
206 function h = plot (varargin) |
4 | 207 |
17036
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
208 [hax, varargin, nargs] = __plt_get_axis_arg__ ("plot", varargin{:}); |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
209 |
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
210 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:
14138
diff
changeset
|
211 print_usage (); |
10730
390d93e20531
Plot commands now print usage information without errors
Rik <octave@nomad.inbox5.com>
parents:
10687
diff
changeset
|
212 endif |
7216 | 213 |
17211
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17204
diff
changeset
|
214 oldfig = []; |
17301
68bcac3c043a
Correct inversion accidentally introduced in cset 87ba70043bfc.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
215 if (! isempty (hax)) |
17211
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17204
diff
changeset
|
216 oldfig = get (0, "currentfigure"); |
87ba70043bfc
Don't use ifelse in plot fcns to avoid unnecessary fcn evaluations.
Rik <rik@octave.org>
parents:
17204
diff
changeset
|
217 endif |
7215 | 218 unwind_protect |
17036
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
219 hax = newplot (hax); |
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
220 htmp = __plt__ ("plot", hax, varargin{:}); |
7215 | 221 unwind_protect_cleanup |
17036
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
222 if (! isempty (oldfig)) |
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
223 set (0, "currentfigure", oldfig); |
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
224 endif |
7215 | 225 end_unwind_protect |
6302 | 226 |
227 if (nargout > 0) | |
17036
08dd9458684a
Overhaul __plt_get_axis_arg__ and newplot functions to avoid creating unnecessary axes.
Rik <rik@octave.org>
parents:
15015
diff
changeset
|
228 h = htmp; |
6302 | 229 endif |
4 | 230 |
231 endfunction | |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
232 |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
233 |
15015 | 234 %!demo |
235 %! x = 1:5; y = 1:5; | |
236 %! plot (x,y,'g'); | |
17190
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
237 %! title ('plot() of green line at 45 degrees'); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
238 |
15015 | 239 %!demo |
240 %! x = 1:5; y = 1:5; | |
241 %! plot (x,y,'g*'); | |
17190
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
242 %! title ('plot() of green stars along a line at 45 degrees'); |
15015 | 243 |
244 %!demo | |
245 %! x1 = 1:5; y1 = 1:5; | |
246 %! x2 = 5:9; y2 = 5:-1:1; | |
247 %! plot (x1,y1,'bo-', x2,y2,'rs-'); | |
248 %! axis ('tight'); | |
17190
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
249 %! title ({'plot() of blue circles ascending and red squares descending'; |
df4c4b7708a4
Add titles and clean-up plotting %!demos.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
250 %! 'connecting lines drawn'}); |
15015 | 251 |
17388
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
252 %!demo |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
253 %! x = 0:10; |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
254 %! plot (x, rand (numel (x), 3)) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
255 %! axis ([0 10 0 1]) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
256 %! title ({'Three random variables', 'x[1x11], y[11x3]'}) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
257 |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
258 %!demo |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
259 %! x = 0:10; |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
260 %! plot (x, rand (3, numel (x))) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
261 %! axis ([0 10 0 1]) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
262 %! title ({'Three random variables', 'x[1x11], y[3x11]'}) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
263 |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
264 %!demo |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
265 %! x = 0:10; |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
266 %! plot (repmat (x, 2, 1), rand (2, numel (x)), '-s') |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
267 %! axis ([0 10 0 1]) |
17530 | 268 %! title ({'Vertical lines with random height and lengths', ... |
17388
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
269 %! 'x[2x11], y[2,11]'}) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
270 |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
271 %!demo |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
272 %! x = 0:10; |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
273 %! plot (repmat (x(:), 1, 2), rand (numel (x), 2)) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
274 %! axis ([0 10 0 1]) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
275 %! title ({'Two random variables', 'x[11x2], y[11x2]'}) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
276 |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
277 %!demo |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
278 %! x = 0:10; |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
279 %! shape = [1, 1, numel(x), 2]; |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
280 %! x = reshape (repmat (x(:), 1, 2), shape); |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
281 %! y = rand (shape); |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
282 %! plot (x, y) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
283 %! axis ([0 10 0 1]) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
284 %! title ({'Two random variables', 'squeezed from 4-d arrays'}) |
e04847bbcfdf
Squeeze Nd > 2 plot vectors.
Ben Abbott <bpabbott@mac.com>
parents:
17301
diff
changeset
|
285 |