somtoolbox2/som_show_clear.m
4dbef185
 function som_show_clear(type, p)
 
 %SOM_SHOW_CLEAR Clear hit marks, labels or trajectories from current figure. 
 %
 % som_show_clear([type], [p])
 % 
 %  som_show_clear
 %  som_show_clear('Traj',[1 2])
 % 
 % Input arguments ([]'s are optional):        
 %  [type] (string) which markers to delete (case insensitive)
 %                  'hit'   to remove hit marks
 %                  'lab'   to remove labels
 %                  'traj'  to remove line trajectories
 %                  'comet' to remove comet trajectories
 %                  'all'   to remove all (the default)
 %  [p]    (vector) subplot number vector 
 %         (string) 'all' for all subplots (the default)
 %
 % This function removes the objects made by SOM_SHOW_ADD from a
 % figure.  If no value is given for p, the function operates on every
 % axis in the current figure. It simply searches for the objects with
 % certain values in the 'Tag' field. It does not matter if the figure
 % objects are created by SOM Toolbox -functions or not. However, if
 % vector p or string 'all' _is_ given, the figure has to have been
 % created by SOM_SHOW.
 %  
 % For more help, try 'type som_show_clear' or check out the helpdesk.
 % See also SOM_SHOW_ADD, SOM_SHOW.
 
 %%%%%%%%% DETAILED DESCRIPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % som_show_clear
 %
 % PURPOSE
 %
 % Clear hit marks, labels or trajectories created by SOM_SHOW_ADD
 % from the current figure. 
 %
 % SYNTAX
 % 
 %  som_show_clear
 %  som_show_clear([type],[p])
 %
 % DESCRIPTION
 %
 % The function SOM_SHOW_ADD creates some markers on the top of
 % visualizations made by SOM_SHOW. These objects may be removed using
 % SOM_SHOW_CLEAR even if the object handles are not known. The function
 % removes the objects based on certain tags written to the 'Tag' property
 % field of the objects.
 %
 % If the function if called without input arguments it searches for
 % every object in the current figure that have string
 % 'Hit','Lab','Traj' or 'Comet' in their Tag property field and
 % deletes them.
 %
 % If input argument p is not specified, the function does not check that the
 % figure is created by function SOM_SHOW.
 %
 % OPTIONAL INPUT ARGUMENTS
 %
 % type  (string) Which type of markers to delete
 %                'Hit' for removing hit marks    
 %                'Lab'              labels 
 %                'Traj'             line trajectories 
 %                'Comet'            comet trajectories 
 %                'All'              all (the default)
 %                Strings are case insensitive.
 %
 % p     (vector) Subplots from which the markers are removed
 %                Specifies the subplots from which the markers are removed. 
 %                The valid values are 1...N where N is the number of subplots. 
 %                It is required that the figure has been created by 
 %                the SOM_SHOW function.
 %
 % EXAMPLES 
 %          
 %   som_show_clear;
 %      % deletes all labels, hit marks and trajectories in the figure
 %   som_show_clear('hit');
 %      % deletes all the hit marks in the current figure
 %   som_show_clear('lab',[1 2]);
 %      % deletes labels in SOM_SHOW figure subplots 1 and 2. 
 %
 % SEE ALSO
 %
 % som_show       Basic map visualizations: component planes, u-matrix etc.
 % som_show_add   Show hits, labels and trajectories on SOM_SHOW visualization.
 
 % Copyright (c) 1997-2000 by the SOM toolbox programming team.
 % http://www.cis.hut.fi/projects/somtoolbox/             
 
 % Version 1.0beta Johan 061197 
 % Version 2.0beta Johan 061099 juuso 181199
 
 %%% Check number of arguments
 
 error(nargchk(0,2, nargin))     % check no. of input args is correct
 
 %%% Initialize & check & action %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 if nargin == 0 | isempty(type) | strcmp(type,'all') % delete everything 
                                                     % in the gcf
   delete(findobj(gcf,'Tag','Hit'));
   delete(findobj(gcf, 'Tag','Lab'));
   delete(findobj(gcf, 'Tag','Traj'));
   delete(findobj(gcf, 'Tag','Comet'));
   return
 end
 
 if nargin < 2 | isempty(p)            % check handles
   handle=gcf;                       
 else                                  % check subplot handles if p is given
   [handle,msg]=vis_som_show_data(p,gcf);
   if ~isempty(msg)
     error('2nd argument invalid or figure not made by SOM_SHOW: try SOM_SHOW_CLEAR without arguments.');
     end
 end
 
 switch lower(type)                    % check type & make proper tag names
 case 'hit'  
   tag = 'Hit'; 
 case 'lab'
   tag = 'Lab';
 case 'traj'
   tag = 'Traj';                     
 case 'comet'
   tag = 'Comet';
 otherwise                             
   error('Invalid object tag. Must be {lab | hit | traj | comet}');
 end
 
 %%% Action %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 for i=1:length(handle),
   h=findobj(handle(i),'Tag',tag);     % find object handles 
   delete(h);                          % delete objects
 end				
 
 %%% No output %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%