📄 plotptns.m
字号:
function varargout=PlotPtns(data,arg1,arg2)
% PlotPtns Plots pattern as points in feature space.
%
% Synopsis:
% PlotPtns(data,marker_size)
% PlotPtns(data,'num')
% PlotPtns(X,marker,marker_size)
% PlotPtns(X,y)
% PlotPtns(X,y,marker_size)
% PlotPtns(X,y,'num')
%
% Description:
% PlotPtns(data,marker_size) plots data.X as points
% distinguished by marker and its color according to
% given labels data.y. The marker size can be prescribed.
%
% PlotPtns(data,'num') plots data.X in distinguished
% by numbers and colors according to given labels data.y.
% The marker size can be determined by argument marker_size.
%
% PlotPtns(X,marker,marker_size) plots data X. Marker type
% cen be determined by argument marker. The marker size can
% be determined by argument marker_size.
%
% PlotPtns(X,y,...) instead of structure data, which contains
% members X and y these can enter the function directly.
%
% If dimension of input data is greater than 3 then
% only first 3 dimensions are assumed and data are plotted
% in 3D space.
%
% Output:
% H [struct] Handles of used graphical objects.
% Modifications:
% 05-25-2004, first modified by Xi Long
% Modified from ppatterns function in
% Statistical Pattern Recognition Toolbox by by Vojtech Franc and Vaclav Hlavac
oldhold = ishold;
hold on;
% takes care of the case when X,y is used insted of structure data
% PlotPtns(X,y,...) -> PlotPtns(data,...)
if nargin > 1 & ~isstruct(data) & size(data,2)==length(arg1) & ~isstr(arg1),
data.X=data;
data.y=arg1;
if nargin >= 3, H=ppatterns(data,arg2); else H=ppatterns(data); end
if nargout >= 1, varargout{1}=H; end
return;
end
% PlotPtns(data) or PlotPtns(data,marker_size)
if isstruct(data) == 1 & (nargin < 2 | isstr(arg1)==0),
if nargin < 2, marker_size = 8; else marker_size = arg1; end
H.points = [];
for i = min(data.y):max(data.y),
inx = find(data.y == i);
if ~isempty(inx),
if size(data.X,1)==1,
h = plot(data.X(1,inx),zeros(1,length(inx)),marker_type(i));
elseif size(data.X,1)==2,
h = plot(data.X(1,inx),data.X(2,inx),marker_type(i));
else
h = plot3(data.X(1,inx),data.X(2,inx),data.X(3,inx),marker_type(i));
end
set(h,'Color',marker_color(i));
set(h,'MarkerSize',marker_size);
H.points = [H.points , h];
end
end
% PlotPtns(data,marker)
elseif isstruct(data) == 1 & nargin == 2 & isstr(arg1)==1 & strcmpi(arg1,'num'),
marker_size = 12;
H.points = [];
H.numbers = [];
for i = min(data.y):max(data.y),
inx = find(data.y==i);
if ~isempty(inx),
if size(data.X,1)==1,
h = plot(data.X(1,inx),zeros(1,length(inx)),'o');
elseif size(data.X,1)==2,
h = plot(data.X(1,inx),data.X(2,inx),'o');
else
h = plot3(data.X(1,inx),data.X(2,inx),data.X(3,inx),'o');
end
set(h,'Color',marker_color(i));
set(h,'MarkerSize',marker_size);
H.points = [H.points , h ];
if size(data.X,1)==1,
h = text(data.X(1,inx),zeros(1,length(inx)),num2str(i));
elseif size(data.X,1)==2,
h = text(data.X(1,inx),data.X(2,inx),num2str(i));
else
h = text(data.X(1,inx),data.X(2,inx),data.X(3,inx),num2str(i));
end
set(h,'HorizontalAlignment','center');
set(h,'VerticalAlignment','middle');
set(h,'Color',marker_color(i));
set(h,'FontSize',marker_size-2);
H.numbers = [H.numbers, h(:)'];
end
end
else
if nargin < 2, marker = 'kx'; else marker = arg1; end
if nargin < 3, marker_size = 10; else marker_size = arg2; end
if size(data,1)==1,
h = plot(data(1,:),zeros(1,size(data,2)),marker);
elseif size(data,1)==2,
h = plot(data(1,:),data(2,:),marker);
else
h = plot3(data(1,:),data(2,:),data(3,:),marker);
end
H.points = h;
set(h,'MarkerSize',marker_size);
end
if oldhold,
hold on;
else
hold off;
end
if nargout>=1, varargout{1} = H; end
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -