Mercurial > hg > octave-nkf
annotate scripts/plot/legend.m @ 10949:848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
author | David Bateman <dbateman@free.fr> |
---|---|
date | Tue, 07 Sep 2010 21:44:13 +0200 |
parents | 6b50fd2d4ca6 |
children | 6ea65c5de87a |
rev | line source |
---|---|
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
1 ## Copyright (C) 2001, 2006, 2007, 2008, 2009 Laurent Mazet |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
2 ## Copyright (C) 2006 John W. Eaton |
6146 | 3 ## |
6440 | 4 ## This file is part of Octave. |
5 ## | |
6 ## Octave is free software; you can redistribute it and/or modify it | |
7 ## under the terms of the GNU General Public License as published by | |
7016 | 8 ## the Free Software Foundation; either version 3 of the License, or (at |
9 ## your option) any later version. | |
6440 | 10 ## |
11 ## Octave is distributed in the hope that it will be useful, but | |
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 ## General Public License for more details. | |
6146 | 15 ## |
16 ## You should have received a copy of the GNU General Public License | |
7016 | 17 ## along with Octave; see the file COPYING. If not, see |
18 ## <http://www.gnu.org/licenses/>. | |
6146 | 19 |
20 ## -*- texinfo -*- | |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
21 ## @deftypefn {Function File} {} legend (@var{str1}, @var{str2}, @dots{}) |
6146 | 22 ## @deftypefnx {Function File} {} legend (@var{matstr}) |
23 ## @deftypefnx {Function File} {} legend (@var{cell}) | |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
24 ## @deftypefnx {Function File} {} legend (@dots{}, "location", @var{pos}) |
10662
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
25 ## @deftypefnx {Function File} {} legend (@var{hax}, @dots{}) |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
26 ## @deftypefnx {Function File} {} legend (@var{hobjs}, @dots{}) |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
27 ## @deftypefnx {Function File} {} legend (@var{hax}, @var{hobjs}, @dots{}) |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
28 ## @deftypefnx {Function File} {} legend ("@var{option}") |
6146 | 29 ## |
10662
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
30 ## Display a legend for the axes with handle @var{hax}, or the current axes, |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
31 ## using the specified strings as labels. Legend entries may be specified |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
32 ## as individual character string arguments, a character array, or a cell |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
33 ## array of character strings. If the handles, @var{hobjs}, are not specified |
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
34 ## then the legend's strings will be associated with the axes' descendants. |
10662
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
35 ## Legend works on line graphs, bar graphs, etc. |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
36 ## A plot must exist before legend is called. |
6146 | 37 ## |
6895 | 38 ## The optional parameter @var{pos} specifies the location of the legend |
39 ## as follows: | |
6146 | 40 ## |
6977 | 41 ## @multitable @columnfractions 0.06 0.14 0.80 |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
42 ## |
6977 | 43 ## @item @tab north @tab |
44 ## center top | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
45 ## |
6977 | 46 ## @item @tab south @tab |
47 ## center bottom | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
48 ## |
6977 | 49 ## @item @tab east @tab |
50 ## right center | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
51 ## |
6977 | 52 ## @item @tab west @tab |
53 ## left center | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
54 ## |
6977 | 55 ## @item @tab northeast @tab |
56 ## right top (default) | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
57 ## |
6977 | 58 ## @item @tab northwest @tab |
59 ## left top | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
60 ## |
6977 | 61 ## @item @tab southeast @tab |
62 ## right bottom | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
63 ## |
6977 | 64 ## @item @tab southwest @tab |
65 ## left bottom | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
66 ## |
6977 | 67 ## @item |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
68 ## |
6977 | 69 ## @item @tab outside @tab |
70 ## can be appended to any location string | |
6146 | 71 ## @end multitable |
72 ## | |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
73 ## The following customizations are available using @var{option}: |
6146 | 74 ## |
7148 | 75 ## @table @asis |
6895 | 76 ## @item "show" |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
77 ## Show legend on the plot |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
78 ## |
6895 | 79 ## @item "hide" |
7148 | 80 ## @itemx "off" |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
81 ## Hide legend on the plot |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
82 ## |
6895 | 83 ## @item "boxon" |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
84 ## Show a box around legend |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
85 ## |
6895 | 86 ## @item "boxoff" |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
87 ## Hide the box around legend |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
88 ## |
6895 | 89 ## @item "left" |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
90 ## Place text to the left of the keys |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10666
diff
changeset
|
91 ## |
6895 | 92 ## @item "right" |
10666
7a43499f074a
legend.m: Improve documentation string
Rik <octave@nomad.inbox5.com>
parents:
10662
diff
changeset
|
93 ## Place text to the right of the keys |
6146 | 94 ## @end table |
95 ## @end deftypefn | |
96 | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
97 function legend (varargin) |
6146 | 98 |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
99 [ca, varargin, nargin] = __plt_get_axis_arg__ ("legend", varargin{:}); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
100 nargs = nargin; |
6146 | 101 |
10662
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
102 if (all (ishandle (varargin{1}))) |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
103 kids = flipud (varargin{1}(:)); |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
104 varargin(1) = []; |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
105 nargs = numel (varargin); |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
106 else |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
107 kids = get (ca, "children"); |
10662
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
108 endif |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
109 nkids = numel (kids); |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
110 |
6146 | 111 if (nargs > 0) |
112 pos = varargin{nargs}; | |
113 if (isnumeric (pos) && isscalar (pos) && round (pos) == pos) | |
6395 | 114 if (pos >= -1 && pos <= 4) |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
115 set (ca, "keypos", pos); |
10549 | 116 nargs--; |
6146 | 117 else |
10549 | 118 error ("legend: invalid position specified"); |
6146 | 119 endif |
120 endif | |
121 endif | |
6977 | 122 |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
123 if (nargs > 1) |
6977 | 124 pos = varargin{nargs-1}; |
7054 | 125 str = varargin{nargs}; |
6977 | 126 if (strcmpi (pos, "location") && ischar (str)) |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
127 set (ca, "keypos", str); |
10948
6b50fd2d4ca6
Don't create __plotyy_axes__ properties in plotyy if they exist (Bug #30977)
David Bateman <dbateman@free.fr>
parents:
10821
diff
changeset
|
128 nargs -= 2; |
6977 | 129 endif |
130 endif | |
6146 | 131 |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
132 k = 1; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
133 turn_on_legend = false; |
6257 | 134 |
6146 | 135 if (nargs == 1) |
136 arg = varargin{1}; | |
137 if (ischar (arg)) | |
138 if (rows (arg) == 1) | |
10549 | 139 str = tolower (deblank (arg)); |
140 switch (str) | |
141 case {"off", "hide"} | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
142 set (ca, "key", "off"); |
10549 | 143 nargs--; |
144 case "show" | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
145 set (ca, "key", "on"); |
10549 | 146 nargs--; |
147 case "toggle" | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
148 val = get (ca, "key"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
149 if (strcmpi (val, "on")) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
150 set (ca, "key", "off"); |
10549 | 151 else |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
152 set (ca, "key", "on"); |
10549 | 153 endif |
154 nargs--; | |
155 case "boxon" | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
156 set (ca, "key", "on", "keybox", "on"); |
10549 | 157 nargs--; |
158 case "boxoff" | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
159 set (ca, "keybox", "off"); |
10549 | 160 nargs--; |
161 case "left" | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
162 set (ca, "keyreverse", "off") |
10549 | 163 nargs--; |
164 case "right" | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
165 set (ca, "keyreverse", "on") |
10549 | 166 nargs--; |
167 otherwise | |
168 endswitch | |
6146 | 169 else |
10549 | 170 varargin = cellstr (arg); |
171 nargs = numel (varargin); | |
6146 | 172 endif |
173 elseif (iscellstr (arg)) | |
8529
774b44619c5c
Fix legend order for both horizontal and vertical string cell.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
8343
diff
changeset
|
174 varargin = arg; |
6146 | 175 nargs = numel (varargin); |
176 else | |
177 error ("legend: expecting argument to be a character string"); | |
178 endif | |
179 endif | |
180 | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
181 if (nargs > 0) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
182 have_data = false; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
183 for k = 1:nkids |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
184 typ = get (kids(k), "type"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
185 if (strcmp (typ, "line") || strcmp (typ, "surface") |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
186 || strcmp (typ, "patch") || strcmp (typ, "hggroup")) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
187 have_data = true; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
188 break; |
6272 | 189 endif |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
190 endfor |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
191 if (! have_data) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
192 warning ("legend: plot data is empty; setting key labels has no effect"); |
6272 | 193 endif |
6147 | 194 endif |
195 | |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
196 warned = false; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
197 k = nkids; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
198 for i = 1:nargs |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
199 arg = varargin{i}; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
200 if (ischar (arg)) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
201 typ = get (kids(k), "type"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
202 while (k > 1 |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
203 && ! (strcmp (typ, "line") || strcmp (typ, "surface") |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
204 || strcmp (typ, "patch") || strcmp (typ, "hggroup"))) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
205 typ = get (kids(--k), "type"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
206 endwhile |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
207 if (k > 0) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
208 if (strcmp (get (kids(k), "type"), "hggroup")) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
209 hgkids = get (kids(k), "children"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
210 for j = 1 : length (hgkids) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
211 hgobj = get (hgkids (j)); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
212 if (isfield (hgobj, "keylabel")) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
213 set (hgkids(j), "keylabel", arg); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
214 break; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
215 endif |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
216 endfor |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
217 else |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
218 set (kids(k), "keylabel", arg); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
219 endif |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
220 turn_on_legend = true; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
221 if (--k == 0) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
222 break; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
223 endif |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
224 elseif (! warned) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
225 warned = true; |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
226 warning ("legend: ignoring extra labels"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
227 endif |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
228 else |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
229 error ("legend: expecting argument to be a character string"); |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
230 endif |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
231 endfor |
10948
6b50fd2d4ca6
Don't create __plotyy_axes__ properties in plotyy if they exist (Bug #30977)
David Bateman <dbateman@free.fr>
parents:
10821
diff
changeset
|
232 |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
233 if (turn_on_legend) |
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
234 set (ca, "key", "on"); |
10948
6b50fd2d4ca6
Don't create __plotyy_axes__ properties in plotyy if they exist (Bug #30977)
David Bateman <dbateman@free.fr>
parents:
10821
diff
changeset
|
235 endif |
6b50fd2d4ca6
Don't create __plotyy_axes__ properties in plotyy if they exist (Bug #30977)
David Bateman <dbateman@free.fr>
parents:
10821
diff
changeset
|
236 |
6146 | 237 endfunction |
238 | |
239 %!demo | |
8790
a013ff655ca4
Trivial changes to demos to produce a more pleasant output for octave+gnuplot+aquaterm.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
240 %! clf |
8343
9f34f7636fe0
legend.m: Correct ording of legend labels.
Ben Abbott <bpabbott@mac.com>
parents:
8291
diff
changeset
|
241 %! plot(1:10, 1:10, 1:10, fliplr(1:10)); |
9f34f7636fe0
legend.m: Correct ording of legend labels.
Ben Abbott <bpabbott@mac.com>
parents:
8291
diff
changeset
|
242 %! title("incline is blue and decline is green"); |
9f34f7636fe0
legend.m: Correct ording of legend labels.
Ben Abbott <bpabbott@mac.com>
parents:
8291
diff
changeset
|
243 %! legend({"I'm blue", "I'm green"}, "location", "east") |
9f34f7636fe0
legend.m: Correct ording of legend labels.
Ben Abbott <bpabbott@mac.com>
parents:
8291
diff
changeset
|
244 |
9f34f7636fe0
legend.m: Correct ording of legend labels.
Ben Abbott <bpabbott@mac.com>
parents:
8291
diff
changeset
|
245 %!demo |
8790
a013ff655ca4
Trivial changes to demos to produce a more pleasant output for octave+gnuplot+aquaterm.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
246 %! clf |
9451 | 247 %! plot(1:10, 1:10, 1:10, fliplr(1:10)); |
248 %! title("incline is blue and decline is green"); | |
249 %! legend("I'm blue", "I'm green", "location", "east") | |
250 | |
251 %!demo | |
252 %! clf | |
6146 | 253 %! plot(1:10, 1:10); |
254 %! title("a very long label can sometimes cause problems"); | |
6977 | 255 %! legend({"hello world"}, "location", "northeastoutside") |
6146 | 256 |
257 %!demo | |
8790
a013ff655ca4
Trivial changes to demos to produce a more pleasant output for octave+gnuplot+aquaterm.
Ben Abbott <bpabbott@mac.com>
parents:
8746
diff
changeset
|
258 %! clf |
9451 | 259 %! plot(1:10, 1:10); |
260 %! title("a very long label can sometimes cause problems"); | |
261 %! legend("hello world", "location", "northeastoutside") | |
262 | |
263 %!demo | |
264 %! clf | |
6146 | 265 %! labels = {}; |
266 %! for i = 1:5 | |
8915
485eabc0cfec
__go_draw_axes__.m: Preserve the order of axes' children when pruning the handles for the {x,y,z}labels and title.
Ben Abbott <bpabbott@mac.com>
parents:
8790
diff
changeset
|
267 %! h = plot(1:100, i + rand(100,1)); hold on; |
485eabc0cfec
__go_draw_axes__.m: Preserve the order of axes' children when pruning the handles for the {x,y,z}labels and title.
Ben Abbott <bpabbott@mac.com>
parents:
8790
diff
changeset
|
268 %! set (h, "color", get (gca, "colororder")(i,:)) |
7540
3422f39573b1
strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents:
7148
diff
changeset
|
269 %! labels = {labels{:}, cstrcat("Signal ", num2str(i))}; |
6146 | 270 %! endfor; hold off; |
271 %! title("Signals with random offset and uniform noise") | |
272 %! xlabel("Sample Nr [k]"); ylabel("Amplitude [V]"); | |
6977 | 273 %! legend(labels, "location", "southoutside") |
6146 | 274 %! legend("boxon") |
9451 | 275 |
276 %!demo | |
277 %! clf | |
278 %! labels = {}; | |
279 %! for i = 1:5 | |
280 %! h = plot(1:100, i + rand(100,1)); hold on; | |
281 %! set (h, "color", get (gca, "colororder")(i,:)) | |
282 %! labels = {labels{:}, cstrcat("Signal ", num2str(i))}; | |
283 %! endfor; hold off; | |
284 %! title("Signals with random offset and uniform noise") | |
285 %! xlabel("Sample Nr [k]"); ylabel("Amplitude [V]"); | |
286 %! legend(labels{:}, "location", "southoutside") | |
287 %! legend("boxon") | |
288 | |
289 %!demo | |
9457
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
290 %! clf |
9451 | 291 %! x = linspace (0, 10); |
292 %! plot (x, x); | |
293 %! hold ("on"); | |
294 %! stem (x, x.^2, 'g') | |
295 %! legend ("linear"); | |
296 %! hold ("off"); | |
297 | |
298 %!demo | |
9457
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
299 %! clf |
9451 | 300 %! x = linspace (0, 10); |
301 %! plot (x, x, x, x.^2); | |
302 %! legend ("linear"); | |
303 | |
304 %!demo | |
9457
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
305 %! clf |
9451 | 306 %! x = linspace (0, 10); |
307 %! plot (x, x, x, x.^2); | |
308 %! legend ("linear", "quadratic"); | |
9457
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
309 |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
310 %!demo |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
311 %! clf |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
312 %! bar (rand (2, 3)) |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
313 %! ylim ([0 1.2]) |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
314 %! legend ({"1st Bar", "2nd Bar", "3rd Bar"}) |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
315 |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
316 %!demo |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
317 %! clf |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
318 %! bar (rand (2, 3)) |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
319 %! ylim ([0 1.2]) |
f9fb8c1a8e45
legend.m: Add an hggroup demo using bar(). Include clf() in each demo.
Ben Abbott <bpabbott@mac.com>
parents:
9451
diff
changeset
|
320 %! legend ("1st Bar", "2nd Bar", "3rd Bar") |
10662
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
321 |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
322 %!demo |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
323 %! clf |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
324 %! x = 0:0.1:7; |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
325 %! h = plot (x, sin(x), x, cos(x), x, sin(x.^2/10), x, cos(x.^2/10)); |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
326 %! title ("Only the sin() objects have keylabels") |
3afcd24ced61
legend.m: Key labels for specified objects.
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
327 %! legend (h([1, 3]), {"sin(x)", "sin(x^2/10)"}, "location", "southwest") |