Cic*_*ici 3 matlab matlab-figure
我知道可以通过单击clustergram
GUI中的颜色条图标来插入颜色条.有没有办法以编程方式进行?我试过了
cgo = clustergram(data)
colorbar;
Run Code Online (Sandbox Code Playgroud)
这会在新的图形窗口中生成一个颜色条.如何在clustergram
图中正确定位颜色条,就像点击按钮一样?
有一个功能被埋没(HeatMap.plot>showColorbar
),它整齐地定位colorbar
在热图和树形图(线条)的左侧.刚运行colorbar(...)
会弄乱树形图和热图的相对位置.因此,您需要以某种方式运行回调或仔细复制所有位置计算.运行回调更容易.这是如何做.
要以colorbar
编程方式为a 创建clustergram
,并使颜色条按钮保持同步,您需要使用按钮指定的回调并设置按钮的状态.
创建clustergram
:
load filteredyeastdata
cgo = clustergram(yeastvalues(1:30,:),'Standardize','Row');
Run Code Online (Sandbox Code Playgroud)
获取颜色条按钮的句柄:
cbButton = findall(gcf,'tag','HMInsertColorbar');
Run Code Online (Sandbox Code Playgroud)
获取ClickedCallback
按钮的回调():
ccb = get(cbButton,'ClickedCallback')
ccb =
@insertColorbarCB
[1x1 clustergram]
Run Code Online (Sandbox Code Playgroud)
这为我们提供了callback(@insertColorbarCB
)赋值函数的句柄,以及函数的第三个输入参数(clustergram
对象).按钮的句柄和空事件对象隐含地是前两个参数.
将按钮状态更改为'on'
(单击):
set(cbButton,'State','on')
Run Code Online (Sandbox Code Playgroud)
运行回调以创建颜色栏:
ccb{1}(cbButton,[],ccb{2})
Run Code Online (Sandbox Code Playgroud)
请注意,State
必须'on'
先将按钮更改为第一个,否则回调将不会执行任何操作.