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");