Отображение ColumnLabelsColor и ColumnNames на кластерной диаграмме Matlab - PullRequest
0 голосов
/ 03 февраля 2019

Я использую кластерограмму, чтобы визуализировать свои кластеры с помощью как дендограммы, так и тепловой карты.Используя этот метод, я хотел бы отобразить 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);

clustergram with column names

clustergram with ColumnLabels assigned

Когда я раскомментирую следующие строки, надписи и цвета столбцов перезаписывают имя столбца, как показано выше.

%  set(cgObj,'ColumnLabels',cLabel);
%  set(cgObj,'ColumnLabelsColor',s);

Получение ColumnLabelsи перезапись их на самом деле работает в моем случае, но мне интересно, есть ли менее хакерский способ сделать это.

columnLabel=get(cgObj,'ColumnLabels');

 columnLabel{3} = 'Col3-group1 ';
 set(cgObj,'ColumnLabels',columnLabel);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...