我正在使用聚类图通过树状图和热图可视化我的聚类。 使用该方法,我想在图上显示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);
在我的情况下,获取ColumnLabel并将其覆盖实际上是可行的,但我想知道是否有一种更简单的方法来实现这一目标。
columnLabel=get(cgObj,'ColumnLabels');
columnLabel{3} = 'Col3-group1 ';
set(cgObj,'ColumnLabels',columnLabel);