]> Creatis software - CreaPhase.git/blobdiff - octave_packages/nan-2.5.5/gscatter.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / nan-2.5.5 / gscatter.m
diff --git a/octave_packages/nan-2.5.5/gscatter.m b/octave_packages/nan-2.5.5/gscatter.m
new file mode 100644 (file)
index 0000000..0599760
--- /dev/null
@@ -0,0 +1,98 @@
+function [h] = gscatter(x,y,group,clr,sym,siz,doleg,xname,yname)
+% GSCATTER scatter plot of groups 
+%
+%  gscatter(x,y,group)
+%  gscatter(x,y,group,clr,sym,siz)
+%  gscatter(x,y,group,clr,sym,siz,doleg)
+%  gscatter(x,y,group,clr,sym,siz,doleg,xname,yname)
+%  h = gscatter(...) 
+%
+%  x,y, group:         vectors with equal length 
+%  clf:        color vector, default 'bgrcmyk'
+%  sym:                symbol, default '.'
+%  siz:        size of Marker
+%  doleg:  'on' (default) shows legend, 'off' turns of legend 
+%  xname, yname: name of axis
+%
+%
+% see also: ecdf, cdfplot
+%
+% References: 
+
+%      $Id$
+%      Copyright (C) 2009 by Alois Schloegl <alois.schloegl@gmail.com>
+%       This function is part of the NaN-toolbox
+%       http://pub.ist.ac.at/~schloegl/matlab/NaN/
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 3
+% of the  License, or (at your option) any later version.
+% 
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+% 
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+[b,i,j] = unique(group); 
+
+if nargin<3
+       help gscatter; 
+       error('invalid number of arguments;')
+end;
+if nargin<4
+       clr = [];
+end
+if nargin<5
+       sym = [];
+end
+if nargin<6
+       siz = [];
+end
+if nargin<7
+       doleg = [];
+end
+if nargin<8
+       xname = [];
+end
+if nargin<9
+       yname = [];
+end; 
+if isempty(clr), clr='bgrcmyk'; end; 
+if isempty(sym), sym='.'; end; 
+if isempty(doleg), doleg='on'; end; 
+
+for k=1:length(b);
+       %ix = find(k==j);
+       c = clr(mod(k-1,length(clr))+1); 
+       s = sym(mod(k-1,length(sym))+1); 
+       hh(k) = plot(x(k==j),y(k==j),[c,s]);
+       if ~isempty(siz)        
+               z = siz(mod(k-1,length(siz))+1); 
+               set(hh(k),'MarkerSize',z);
+       end     
+       hold on; 
+end; 
+hold off; 
+
+if ~strcmpi(doleg,'off')
+       if isnumeric(b)
+               b=num2str(b(:));
+       end;    
+       legend(b);
+end;
+if ~isempty(xname)
+       xlabel(xname); 
+end; 
+if ~isempty(yname)
+       ylabel(yname); 
+end; 
+       
+if nargout>0,
+       h = hh; 
+end;
+