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

📄 plot_transpose_v1.m

📁 应用于MATLAB上的聚类方法
💻 M
字号:
function Y=plot_transpose_v1(A, Z, Elem1, Elem2, col, row1, row2, cell_axis, cell_title)

%  Reference:
%  Evrim Acar, Rasmus Bro, Bonnie Schmidt, New Exploratory Metabonomic
%  Tools, Submitted to Journal of Chemometrics, 2007.
%
%
% Y=plot_transpose_v1(A, Z, Elem1, Elem2, col, row1, row2, cell_axis, cell_title)
% This function plots the transpose of what is already plot on the figure
%
%
% Inputs:     A: Data array
%             Z: Clustering from linkage
%         Elem1: Objects in Cluster 1
%         Elem2: Objects in Cluster 2
%           col: color code
%          row1: line handle of first cluster
%          row2: line handle of second cluster
%     cell_axis: axisscale of original data
%    cell_title: mode names
%
% Output:    Y : Original data whose second and third modes are switched.
%
%
% Last modified: 05/21/2007

original_axis=cell_axis;
original_title=cell_title;
if (size(cell_axis,1)==0)
    scales=cell(length(size(permute(A,[1 3 2]))),1);
else
    temp=cell_axis{2,1};
    cell_axis{2,1}=cell_axis{3,1};
    cell_axis{3,1}=temp;
    clear temp
    scales=cell_axis;
end
if (size(cell_title,1)==0)
    titles=cell(length(size(A)),1);
else
    temp=cell_title{2,1};
    cell_title{2,1}=cell_title{3,1};
    cell_title{3,1}=temp;
    clear temp
    titles=cell_title;
end


subplot(2,2,2,'replace');
nb_of_clicks=2;
for i=1:nb_of_clicks
    eval(['Mean' num2str(i) '=squeeze(mean(A(Elem' num2str(i) ',:,:)));']);
    if (isempty(scales{3,1})==0)
        eval(['m' num2str(i) '=plot(scales{3,1}, mean(transpose(Mean' num2str(i) ')),col{i});']);
    else
        eval(['m' num2str(i) '=plot(mean(transpose(Mean' num2str(i) ')),col{i});']);
    end
    hold on
    eval(['linelabel(m' num2str(i) ',Elem' num2str(i) ');']);
end
if (isempty(titles{3,1})==0)
    xlabel(titles{3,1});
end
Y=permute(A,[1 3 2]);
legend('Average of Cluster1','Average of Cluster2');

position1=[0.58,0.5,0.2,0.03];
u4=uicontrol(gcf,'style','checkbox','string','Add Individual Profiles','Units', 'Normal','position',position1,...
    'callback', {@checkbox2_Callback, Y, A, Z, Elem1, Elem2, col, row1, row2, cell_axis, original_axis, original_title});

position2=[0.80,0.5,0.1,0.03];
u2=uicontrol(gcf,'style','pushbutton','string','SELECT POINT','Units','Normal','position',position2,...
        'callback', {@select_point,Y, cell_axis, cell_title});

position3=[0.70,0.5,0.1,0.03];
u5=uicontrol(gcf,'style','checkbox','string','Transpose','Units', 'Normal','position',position3,...
      'callback', {@checkbox3_Callback, A, Z, Elem1, Elem2, col, row1, row2, original_axis, original_title});

%--------------------------------------------------------------------------
function select_point(no_use1, no_use2, Y, cell_axis, cell_title)

h=subplot(2,2,2);
Y=dataset(Y);
for i=1:3
    Y.axisscale{i,1}=cell_axis{i,1};
    Y.title{i,1}=cell_title{i,1};
end
get_point_v1(h,Y);

%--------------------------------------------------------------------------
function checkbox2_Callback(no_use1,no_use2, Y, A, Z, Elem1, Elem2, col, row1, row2, cell_axis, original_axis, original_title)
hObject=gcbo;
if (get(hObject,'Value') == get(hObject,'Max'))
    hold on;
    subplot(2,2,2)  
    add_indiv_v1(Y, Elem1, Elem2, col, cell_axis);
else
    plot_transpose_v1(A, Z, Elem1, Elem2, col, row1, row2, original_axis, original_title);
end

%--------------------------------------------------------------------------
function checkbox3_Callback(no_use1,no_use2, A, Z, Elem1, Elem2, col, row1, row2, original_axis, original_title)

figure2=subplot(2,2,2,'replace');
plot_data_v1(A,Z,row1,row2,col, original_axis, original_title);

⌨️ 快捷键说明

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