www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mvgraph3d/private/pr_graphlim.m
function pr_graphlim(gr) %PR_GRAPHLIM Private Function % % Private function for sorting out correct limits on axes and colorbar. % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. % redo limits on axes and colourbar ud = gr.DataPointer.info; data = ud.data; if ~isempty(data) minmax = ud.limits; % check minmax for correct size if length(minmax)<size(data,2) minmax(end+1:size(data,2)) = {0}; elseif length(minmax)>size(data,2) minmax = minmax(1:size(data,2)); end xval = get(gr.xfactor,'Value'); if all(minmax{xval}==0) xl = mbcmakelimits(data(:, xval)); else xl = minmax{xval}; if ~all(isfinite(xl)) || xl(2)<=xl(1) xl = mbcmakelimits(data(:, xval)); end end yval=get(gr.yfactor,'Value'); if all(minmax{yval}==0) yl = mbcmakelimits(data(:, yval)); else yl = minmax{yval}; if ~all(isfinite(yl)) || yl(2)<=yl(1) yl = mbcmakelimits(data(:, yval)); end end zval=get(gr.zfactor,'Value'); if all(minmax{zval}==0) zl = mbcmakelimits(data(:, zval)); else zl = minmax{zval}; if ~all(isfinite(zl)) || zl(2)<=zl(1) zl = mbcmakelimits(data(:, zval)); end end set(gr.axes,{'XLim','YLim','ZLim'},{xl, yl, zl}); % Do colorbar ticklabels cl = zl; ylim = get(gr.colorbar.axes,'YLim'); set(gr.axes,'CLim',cl); labpoints = get(gr.colorbar.axes,'YTick'); actpoints = cl(1)+(labpoints-0.5).*(cl(2)-cl(1))./(ylim(2)-ylim(1)); actpoints = cellstr(num2str(actpoints','%3.2f')); set(gr.colorbar.axes,'YTickLabel',actpoints); end