Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)
H = shade_solid(aray, level, alt, colr);
shade_solid(data, lev, alt, color) This function shades in areas where the matrix data is greater than the value 'lev'. Note that lev MUST be a scalar, so this isn't like contourf. This is all done for a map axis. The variable 'color' may be input as a 3 element numeric vector [r g b], or left for default, [.7 .7 .7]
This function calls | |
---|---|
function H = shade_solid(aray, level, alt, colr); aray = squeeze(aray); if nargin < 4; colr = 0.7; end; if nargin < 3; alt = -1; end; if isscalar(colr); if isstr(colr); error('colr must be numeric - [r g b]'); else colr = colr*[1 1 1]; end end if ~ismap(gca); error('This function works for map axes only. Try greyshd for non-map axes.'); end % First, determine if hold is 'on', or 'off'. next_ax = lower(get(gca, 'NextPlot')); if strcmp(next_ax, 'replace'); set(gca, 'NextPlot', 'add'); end; global XAX YAX FRAME if (size(YAX,1)==1); YAX = YAX'; end; if (size(XAX,1)==1); XAX = XAX'; end; [xk, yk] = keep_var(FRAME, XAX, YAX); if (FRAME(2)-FRAME(1) == 360); aray2 = [aray(:,:) aray(:,1)]; XAX2 = [XAX; (XAX(1)+360)]; YAX2 = YAX(:); else aray2 = aray(:,:); XAX2 = XAX(:); YAX2 = YAX(:); end clev = level*[1 1]; % Plot the data ver = version; if strcmp(ver(1), '6'); [c, h] = contourm(YAX2, XAX2, aray2, clev); elseif strcmp(ver(1), '5'); [c, h] = contorm(YAX2, XAX2, aray2, clev); end; % Now, delete contour, and make a patch delete(h); [lattrm, lontrm] = maptrimp2(c(2,2:end), c(1,2:end), FRAME(3:4), FRAME(1:2)); hh = patchm(lattrm, lontrm, alt, 'k'); %hh = patchm(c(2,2:end), c(1,2:end), alt, 'k'); set(hh, 'edgecolor', colr, 'facecolor', colr); if nargout == 1; H = hh; end set(gca, 'NextPlot', next_ax);