ECG-Kit 1.0
(1,963 bytes)
%PLOTO Plot objects as 1-D functions of the feature number
%
% [HH HO HC] = PLOTO(A,N)
%
% INPUT
% A Dataset
% N Integer
%
% OUTPUT
% HH Lines handles
% HO Object identifier handles
% HC Class number handles
%
% DESCRIPTION
% Produces 1-D function plots for all the objects in dataset A. The plots
% are organised as subplots, N on a row. Default is the squareroot of the
% number of objects. Object identifiers and class numbers are written in
% the correspopnding plots.
%
% See also DATASETS
% Copyright: R.P.W. Duin, r.p.w.duin@37steps.com
% Faculty EWI, Delft University of Technology
% P.O. Box 5031, 2600 GA Delft, The Netherlands
function [h_out1,h_out2,h_out3] = ploto(a,p)
if nargin < 2, p = []; end
[m,k,c] = getsize(a);
nlab = getnlab(a);
% Define the color for each of the classes:
if c == 2
map = [0 0 1; 1 0 0];
else
map = hsv(c);
end
% Make subplots for each object, so a grid of p x q subplots is
% defined
h = [];
if ~isempty(p)
q = ceil(m/p);
elseif m > 3
p = ceil(sqrt(m)); q = ceil(m/p);
else
p = m; q = 1;
end
% Get the object labels
labs = getlabels(a);
ymin = min(a.data(:));
ymax = max(a.data(:));
V = [1 k ymin ymax];
% Make the plot for each of the objects:
h = [];
ho = [];
hc = [];
s = sprintf('Plot %i objects: ',m);
prwaitbar(m,s);
for j = 1:m
if isdatafile(a) | 1
prwaitbar(m,j,[s int2str(j)]);
b = +prdataset(a(j,:));
ymin = min(b);
ymax = max(b);
k = length(b);
V = [1 k ymin ymax];
else
b = +a(j,:);
end
% Create the subplots with the correct sizes:
subplot(q,p,j)
hh = plot(b);
set(gca,'xtick',[]);
set(gca,'ytick',[]);
axis(gca,V);
ho = [ho text(2,ymax-0.15*(ymax-ymin),getident(a(j,:),'string'))];
hc = [hc text(3*k/4,ymax-0.15*(ymax-ymin),num2str(nlab(j)))];
h = [h hh];
hold on
end
prwaitbar(0);
% The last details to take care of:
if nargout > 0
h_out1 = h;
h_out2 = ho;
h_out3 = hc;
end
return