Я использую кластерограмму, чтобы визуализировать свои кластеры с помощью как дендограммы, так и тепловой карты.Используя этот метод, я хотел бы отобразить ColumnLabels, ColumnLabelsColor и имена столбцов на рисунке.
Следующий код отображает только имена столбцов,
cLabel = {'group1','group1','group1','group2','group2'}; % column labels
colors = cell(size(cLabel)); %for column label colors
colors(contains(cLabel,'group1')) = {[1 1 0]};
colors(contains(cLabel,'group2')) = {[0.6 0.6 1]};
s = struct('Labels',cLabel,'Colors',colors); %create a struct to pass to clustergram function
data = [1,3,2,5,2;
4,-1,3,5,0;
2,2,4,1,-1;
0,2,0,4,5];
data = bioma.data.DataMatrix(data,'ColNames',{'Col1','Col2','Col3','Col4','Col5'}); % data with column names
cgObj=clustergram(data,'DisplayRange',5,'symmetric','off'); % display clustergram
set(cgObj,'Colormap',customCmap);
% set(cgObj,'ColumnLabels',cLabel);
% set(cgObj,'ColumnLabelsColor',s);
Когда я раскомментирую следующие строки, надписи и цвета столбцов перезаписывают имя столбца, как показано выше.
% set(cgObj,'ColumnLabels',cLabel);
% set(cgObj,'ColumnLabelsColor',s);
Получение ColumnLabelsи перезапись их на самом деле работает в моем случае, но мне интересно, есть ли менее хакерский способ сделать это.
columnLabel=get(cgObj,'ColumnLabels');
columnLabel{3} = 'Col3-group1 ';
set(cgObj,'ColumnLabels',columnLabel);