Mercurial > octave-nkf
comparison scripts/plot/__contour__.m @ 8299:be9b14945774
Add code to remove listeners from properties and use it with newplot
author | David Bateman <dbateman@free.fr> |
---|---|
date | Fri, 31 Oct 2008 12:30:20 +0100 |
parents | ac7f334d9652 |
children | cc3ac5eb6be3 |
comparison
equal
deleted
inserted
replaced
8298:7e87d3d76a56 | 8299:be9b14945774 |
---|---|
76 else | 76 else |
77 vnauto = true; | 77 vnauto = true; |
78 vn = 10; | 78 vn = 10; |
79 endif | 79 endif |
80 | 80 |
81 if (isscalar (vn)) | |
82 lvl = linspace (min (z1(!isinf(z1))), max (z1(!isinf(z1))), | |
83 vn + 2)(1:end-1); | |
84 else | |
85 lvl = vn; | |
86 endif | |
87 | |
81 if (strcmpi (filled, "on")) | 88 if (strcmpi (filled, "on")) |
82 if (isvector (x1) || isvector (y1)) | 89 if (isvector (x1) || isvector (y1)) |
83 [x1, y1] = meshgrid (x1, y1); | 90 [x1, y1] = meshgrid (x1, y1); |
84 endif | 91 endif |
85 [nr, nc] = size (z1); | 92 [nr, nc] = size (z1); |
89 y0 = prepad(y1, nr+1, 2 * y1(1, 1) - y1(2, 1), 1); | 96 y0 = prepad(y1, nr+1, 2 * y1(1, 1) - y1(2, 1), 1); |
90 y0 = postpad(y0, nr+2, 2 * y1(nr, 1) - y1(nr - 1, 1)); | 97 y0 = postpad(y0, nr+2, 2 * y1(nr, 1) - y1(nr - 1, 1)); |
91 y0 = [y0(:, 1), y0, y0(:, 1)]; | 98 y0 = [y0(:, 1), y0, y0(:, 1)]; |
92 z0 = -Inf(nr+2, nc+2); | 99 z0 = -Inf(nr+2, nc+2); |
93 z0(2:nr+1, 2:nc+1) = z1; | 100 z0(2:nr+1, 2:nc+1) = z1; |
94 [c, lev] = contourc (x0, y0, z0, vn); | 101 [c, lev] = contourc (x0, y0, z0, lvl); |
95 else | 102 else |
96 [c, lev] = contourc (x1, y1, z1, vn); | 103 [c, lev] = contourc (x1, y1, z1, lvl); |
97 endif | 104 endif |
98 | 105 |
99 hg = hggroup (); | 106 hg = hggroup (); |
100 opts = __add_datasource__ ("__countour__", hg, {"x", "y", "z"}, opts{:}); | 107 opts = __add_datasource__ ("__countour__", hg, {"x", "y", "z"}, opts{:}); |
101 | 108 |
126 else | 133 else |
127 addproperty ("zlevel", hg, "data", 0.); | 134 addproperty ("zlevel", hg, "data", 0.); |
128 endif | 135 endif |
129 endif | 136 endif |
130 | 137 |
131 if (isscalar (vn)) | 138 lvlstep = sum (abs (diff (lvl))) / (length (lvl) - 1); |
132 lvlstep = (max(z1(:)) - min(z1(:))) / vn; | |
133 else | |
134 lvlstep = (max(z1(:)) - min(z1(:))) / 10; | |
135 endif | |
136 | 139 |
137 addproperty ("levellist", hg, "data", lev); | 140 addproperty ("levellist", hg, "data", lev); |
138 addproperty ("levelstep", hg, "double", lvlstep); | 141 addproperty ("levelstep", hg, "double", lvlstep); |
139 if (vnauto) | 142 if (vnauto) |
140 addproperty ("levellistmode", hg, "radio", "{auto}|manual", "auto"); | 143 addproperty ("levellistmode", hg, "radio", "{auto}|manual", "auto"); |