Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)
[hd,hb]=errorbar2(x, y, l,u,le,ri,symbol,symbol2)
function [hd,hb]=errorbar2(x,y,l,u,le,ri,symbol,symbol2) Plot graph with error bars. input : x : vector of x-locations of data y : vector of y-locations of data l : vector of 'lower' errorbars u : vector of 'upper' errorbars le : vector of 'left' errorbars ri : vector of 'right' errorbars symbol : color and line style of data line symbol2 : color and line style of errorbars output : hd : handles to data line hb : handles to bars for unknown arguments please use [] uses : nmin, nmax version 1.0.2 last change 22.09.1997
This function calls | |
---|---|
function [hd,hb]=errorbar2(x, y, l,u,le,ri,symbol,symbol2) % L. Shure 5-17-88, 10-1-91 B.A. Jones 4-5-93 % Copyright (c) 1984-94 by The MathWorks, Inc. % added SYMBOL2 G.Krahmann, IfM Kiel, 1995/03/09 % revised for x-y bars G.Krahmann, IfM Kiel, 1995/11/16 % changed maxnan to nmax G.Krahmann, LODYC Paris, 1997/09/22 % added markersize/lw op G.Krahmann, LDEO, 1998/10/06 if nargin<2 disp('not enough input arguments') return end if all(size(x)~=1) & all(size(x)~=1) disp('errorbar2 can only handle vectors !') return end if nargin<3 l=nan*x; u=nan*x; ri=nan*x; le=nan*x; symbol='-'; symbol2='-'; arg1 = 0.5; elseif nargin<4 u=l; ri=nan*x; le=nan*x; symbol='-'; symbol2='-'; arg1 = 0.5; elseif nargin<5 ri=nan*x; le=nan*x; symbol='-'; symbol2='-'; arg1 = 0.5; elseif nargin<6 ri=le; symbol='-'; symbol2='-'; arg1 = 0.5; elseif nargin<7 symbol='-'; symbol2='-'; arg1 = 0.5; elseif nargin<8 symbol2=symbol; if strcmp(symbol,'.') arg1 = 5; else arg1 = 0.5; end end if isempty(x) | all(isnan(x)) x=[1:length(y)]; end if isempty(l) & isempty(u) l=nan*x; u=nan*x; elseif isempty(l) l=u; elseif isempty(u) u=l; end if isempty(le) & isempty(ri) le=nan*x; ri=nan*x; elseif isempty(le) le=ri; elseif isempty(ri) ri=le; end if all(isnan(l)) & any(~isnan(u)) l=u; elseif all(isnan(u)) & any(~isnan(l)) u=l; end if all(isnan(le)) & any(~isnan(ri)) le=ri; elseif all(isnan(ri)) & any(~isnan(le)) ri=le; end x=x(:); y=y(:); l=l(:); u=u(:); le=le(:); ri=ri(:); if any(size(x)~=size(y)) | any(size(x)~=size(l)) | any(size(x)~=size(u)) ... any(size(x)~=size(u)) | any(size(x)~=size(le)) | any(size(x)~=size(ri)) error('The sizes of X, Y, L, U, LE and RI must be the same.'); end tee = (nmax(x(:))-nmin(x(:)))/100; % make tee .02 x-distance for error bars xl = x - tee; xr = x + tee; tee = (nmax(y(:))-nmin(y(:)))/100; % make tee .02 x-distance for error bars yl = y - tee; yr = y + tee; n = size(y,2); % Plot graph and bars cax = newplot; next = lower(get(cax,'NextPlot')); % build up nan-separated vector for bars xb = []; yb = []; xb2 = []; yb2 = []; nnan = nan*ones(1,n); for i = 1:length(x) ytop = y(i,:) + u(i,:); ybot = y(i,:) - l(i,:); xb = [xb; x(i,:); x(i,:) ; nnan; xl(i,:);xr(i,:);nnan ;xl(i,:);xr(i,:);nnan]; yb = [yb; ytop;ybot;nnan;ytop;ytop;nnan;ybot;ybot;nnan]; xtop = x(i,:) + ri(i,:); xbot = x(i,:) - le(i,:); yb2 = [yb2; y(i,:); y(i,:) ; nnan; yl(i,:);yr(i,:);nnan ;yl(i,:);yr(i,:);nnan]; xb2 = [xb2; xtop;xbot;nnan;xtop;xtop;nnan;xbot;xbot;nnan]; end %plot(xb,yb,symbol2,x,y,symbol,xb2,yb2,symbol2) hb=plot(xb,yb,symbol2,xb2,yb2,symbol2,x,y,symbol); hd = hb(3); hb = hb(1:2);