在Matlab集群图上同时显示ColumnLabelsColor和ColumnNames

时间:2019-02-03 00:55:57

标签: matlab heatmap dendrogram

我正在使用聚类图通过树状图和热图可视化我的聚类。 使用该方法,我想在图上显示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);

在我的情况下,获取ColumnLabel并将其覆盖实际上是可行的,但我想知道是否有一种更简单的方法来实现这一目标。

columnLabel=get(cgObj,'ColumnLabels');

 columnLabel{3} = 'Col3-group1 ';
 set(cgObj,'ColumnLabels',columnLabel);

0 个答案:

没有答案