No BSD License  

Highlights from
AREA3

image thumbnail
from AREA3 by Dirk Heber
Filled area plot in 3d.

[outlegendhandle]=area3legend(varargin);
function [outlegendhandle]=area3legend(varargin);
%
% AREA3LEGEND creates a legend for AREA3
% 
%    Syntax:
%    [legend_handle]=AREA3LEGEND(ha1,txt1,ha2,txt2,...);
%    
%    Inputs:
%    ha     handle or vector of handles 
%    txt    legendtext (== area3options.LegendText)
%           if an empty field is supplied the text is
%           automatically created.

% Intended for use with AREA3. Tested under Matlab 6.
% DH/3Ap2004,(mailto:dirk.heber@gmx.de)
%

% the default position of the legend
DefaultPos=1;

if isempty(varargin)
    error('Not enough input arguments for this function!');
end;

[nrows,ncols]=size(varargin);
if rem(ncols,2)>0 
    error('Wrong number of arguments in AREA3LEGEND');
end;

% for splitting the varargin
f1=linspace(1,length(varargin)-1,length(varargin)/2);
f2=linspace(2,length(varargin),length(varargin)/2);
index=[f1;f2];

for jjj=1:1:length(varargin)/2
    inputs.ha{jjj}=varargin{index(1,jjj)};
    inputs.legte{jjj}=varargin{index(2,jjj)};
end;


 numberdata=[];
 legendtext=[];

for kkk=1:1:length(varargin)/2
    if isempty(inputs.ha{kkk})
        error('Missing entry for required handle!');
    end;
    
    if isstr(inputs.ha{kkk})
        error('Invalid supplied handle!');
    end;
    
    if  isempty(inputs.legte{kkk}) | ~iscell(inputs.legte{kkk})|...
            ~iscellstr(inputs.legte{kkk}) |...
                 length(inputs.ha{kkk})<length(inputs.legte{kkk}) |...
                    length(inputs.ha{kkk})>length(inputs.legte{kkk})
         gentext=[];
         for vvv=1:1:length(inputs.ha{kkk})
             gentext{vvv}=(['Data ',int2str(vvv),' (',int2str(kkk),')']);
         end;
         inputs.legte{kkk}=gentext;
    end;
    
    zwha=inputs.ha{kkk};
    inputs.ha{kkk}=zwha(:);
    
    zwlegte=inputs.legte{kkk};
    inputs.legte{kkk}=zwlegte(:);
    
    numberdata=[numberdata; inputs.ha{kkk}];
    legendtext=[legendtext; inputs.legte{kkk}];
end;

if nargout > 1
    error('Too many output arguments from this function!');
else
    outlegendhandle=legend([numberdata],legendtext,DefaultPos);
end;

% END OF AREA3LEGEND ----------------------------------------------------------










Contact us