我知道可以通过单击clustergramGUI中的colorbar图标插入一个colorbar有没有一种方法可以通过编程来实现呢?
我试过了

cgo = clustergram(data)
colorbar;

这将在新的体形窗口中生成一个颜色栏如何在clustergram图形中创建具有正确位置的颜色栏,就像单击了按钮一样?

最佳答案

有一个隐藏的函数(HeatMap.plot>showColorbar)将colorbar整齐地放置在热量图和密度图(线)的左侧仅仅运行colorbar(...)会弄乱dendogram和heatmap的相对位置因此,您需要以某种方式运行回调或仔细复制所有位置计算运行回调更容易这是怎么做的。
要以编程方式为acolorbar创建clustergram,并保持颜色栏按钮同步,您需要使用按钮的指定回调并设置按钮的状态。
创建clustergram

load filteredyeastdata
cgo = clustergram(yeastvalues(1:30,:),'Standardize','Row');

获取颜色栏按钮的句柄:
cbButton = findall(gcf,'tag','HMInsertColorbar');

获取按钮的回调(ClickedCallback):
ccb = get(cbButton,'ClickedCallback')
ccb =
    @insertColorbarCB
    [1x1 clustergram]

它为回调函数(@insertColorbarCB)和函数的第三个输入参数(对象)分配了一个句柄按钮的句柄和一个空事件对象隐式地是前两个参数。
将按钮状态更改为clustergram(单击下键):
set(cbButton,'State','on')

运行回调以创建颜色栏:
ccb{1}(cbButton,[],ccb{2})

请注意,必须先将按钮'on'更改为State,否则回调不会执行任何操作。

关于matlab - 在聚类图中以编程方式打开颜色栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20648627/

10-09 17:21