⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 da_pclds.m

📁 王小平《遗传算法——理论、应用与软件实现》随书光盘
💻 M
字号:
%
% da_pclds.m
%
% Programme to plot a two dimensional loadings graph
%

da_front;
da_pcapb;
drawnow;

%
% Draw some axes
%
ax1=axes(...
	'Units','pixels',...
	'Position',[50 150 500 250],...
	'Box','on',...
	'Color',[0 0 0],...
	'Visible','on');


%
% Print a title
%
text1=da_text(w1,50,405,500,15,'2D plot of principal component loadings (Numbers shown are variable numbers)',[1 1 1],[1 0 0]);

old_val1=1;
old_val2=2;
sl1_value=1;
sl2_value=2;
%
% Plot the principal component
%
hold on;
plotnum(c(:,1)+0.005,c(:,2),ax1);
plot(c(:,1),c(:,2),'+');
minx=min(c(:,sl1_value))*0.9;
maxx=max(c(:,sl1_value))*1.1;
miny=min(c(:,sl2_value))*0.9;
maxy=max(c(:,sl2_value))*1.1;
set(ax1,'Xlim',[minx maxx],'Ylim',[miny maxy]);
l=line([minx maxx],[0 0]);
set(l,'color',[0 0 1]);
l=line([0 0],[miny maxy]);
set(l,'color',[0 0 1]);
hold off;
drawnow;

Xlabel('Principal component');
Ylabel('Principal component');
p_style=0;
[dummy num_pcs]=size(pcs);

%
% Have a slider to change which pc to plot
%

sl1=uicontrol(w1,...
	'Style','slider',...
	'Position',[50 60 200 20],...
	'Min',1,...
	'Max',num_pcs,...
	'Value',1,...
	'CallBack',[
		'set(sl1_current,''String'',ceil(get(sl1,''Value'')));',...
		'sl1_value=ceil(get(sl1,''Value''));',...
		'if sl1_value ~= old_val1;',...
			'set(sl1_current,''String'',num2str(ceil(sl1_value)));',...
			'cla;',...
			'hold on;',...
			'plotnum(c(:,sl1_value)+0.005,c(:,sl2_value),ax1);',...
			'plot(c(:,sl1_value),c(:,sl2_value),''+'');',...
			'minx=min(c(:,sl1_value))*0.9;',...
			'maxx=max(c(:,sl1_value))*1.1;',...
			'miny=min(c(:,sl2_value))*0.9;',...
			'maxy=max(c(:,sl2_value))*1.1;',...
			'l=line([minx maxx],[0 0]);',...
			'set(l,''color'',[0 0 1]);',...
			'l=line([0 0],[miny maxy]);',...
			'set(l,''color'',[0 0 1]);',...
			'set(ax1,''Xlim'',[minx maxx],''Ylim'',[miny maxy]);',...
			'drawnow;',...
			'hold off;',...
			'old_val1=sl1_value;',...
			'Xlabel(''Principal component'');',...
			'Ylabel(''Principal component'');',...
		'end;']);

sl1_current=da_text(w1,225,85,20,15,num2str(get(sl1,'Value')),[1 1 1],[0 0 0]);
sl1_min=da_text(w1,30,60,15,15,'1',[1 1 1],[0 0 0]);
sl1_max=da_text(w1,250,60,20,15,num2str(num_pcs),[1 1 1],[0 0 0]);
sl1_title=da_text(w1,45,85,180,15,'X-axis principal component:',[1 1 1],[0 0 0]);

%
% Now draw a slider to define the principal component plotted
% on the y-axis
%
sl2=uicontrol(w1,...
	'Style','slider',...
	'Position',[370 60 200 20],...
	'Min',1,...
	'Max',num_pcs,...
	'Value',sl2_value,...
	'CallBack',[
		'set(sl2_current,''String'',ceil(get(sl2,''Value'')));',...
		'sl2_value=ceil(get(sl2,''Value''));',...
		'if sl2_value ~= old_val2;',...
			'cla;',...
			'hold on;',...
			'plotnum(c(:,sl1_value)+0.005,c(:,sl2_value),ax1);',...
			'plot(c(:,sl1_value),c(:,sl2_value),''+'');',...
			'minx=min(c(:,sl1_value))*0.9;',...
			'maxx=max(c(:,sl1_value))*1.1;',...
			'miny=min(c(:,sl2_value))*0.9;',...
			'maxy=max(c(:,sl2_value))*1.1;',...
			'l=line([minx maxx],[0 0]);',...
			'set(l,''color'',[0 0 1]);',...
			'l=line([0 0],[miny maxy]);',...
			'set(l,''color'',[0 0 1]);',...
			'set(ax1,''Xlim'',[minx maxx],''Ylim'',[miny maxy]);',...
			'drawnow;',...
			'hold off;',...			'old_val2=sl2_value;',...
			'Xlabel(''Principal component'');',...
			'Ylabel(''Principal component'');',...
		'end;']);

sl2_current=da_text(w1,550,85,20,15,num2str(get(sl2,'Value')),[1 1 1],[0 0 0]);
sl2_min=da_text(w1,350,60,15,15,'1',[1 1 1],[0 0 0]);
sl2_max=da_text(w1,570,60,20,15,num2str(num_pcs),[1 1 1],[0 0 0]);
sl2_title=da_text(w1,370,85,170,15,'Y-axis principal component',[1 1 1],[0 0 0]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -